From: Beef T. <bee...@ma...> - 2017-12-17 20:02:37
|
Hello, i'm having trouble building the static libraries from source. I use Debian 9 os, and Cmake-Gui Fi Here is what i do, first i tried to use the option: BUILD_STATIC_LIBS ON BUILD_SHARED_LIBS OFF But this seems to have no effect! I still get the *.so files in result, so i manually openeded advanced options, and changed all dependencies to *.a, and added -static flag to the linker options: Commandline options: -DTIGHTVNC_FILETRANSFER:BOOL="1" -DX11_Xdamage_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXdamage.a" -DJPEG_INCLUDE_DIR:PATH="/usr/include" -DJPEG_LIBRARY:FILEPATH="/usr/lib/i386-linux-gnu/libjpeg.a" -DX11_Xau_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXau.a" -DCMAKE_FIND_LIBRARY_SUFFIXES:STRING=".a" -DLIBGCRYPT_LIBRARIES:FILEPATH="/usr/lib/i386-linux-gnu/libgcrypt.a" -DSDLMAIN_LIBRARY:FILEPATH="/usr/lib/i386-linux-gnu/libSDLmain.a" -DCMAKE_EXE_LINKER_FLAGS_DEBUG:STRING="-static" -DBUILD_SHARED_LIBS:BOOL="0" -DX11_Xt_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXt.a" -DX11_Xxf86vm_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXxf86vm.a" -DGNUTLS_LIBRARY:FILEPATH="/usr/lib/libgnutls.a" -DX11_Xfixes_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXfixes.a" -DCMAKE_STATIC_LINKER_FLAGS:STRING="" -DBUILD_STATIC_LIBS:BOOL="0" -DLIBDL_LIBRARY:FILEPATH="/usr/lib/i386-linux-gnu/libdl.a" -DBUILD_SHARED_LIBRARIES:BOOL="0" -DX11_X11_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libX11.a" -DX11_Xext_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXext.a" -DZLIB_LIBRARY_RELEASE:FILEPATH="/usr/lib/i386-linux-gnu/libz.a" -DX11_Xdmcp_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libXdmcp.a" -DCMAKE_INSTALL_PREFIX:PATH="/usr/local" -DCMAKE_EXE_LINKER_FLAGS:STRING="-static" -DCMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING="" -DPNG_LIBRARY_RELEASE:FILEPATH="/usr/lib/i386-linux-gnu/libpng.a" -DCMAKE_BUILD_TYPE:STRING="" -DOPENSSL_CRYPTO_LIBRARY:FILEPATH="/usr/lib/i386-linux-gnu/libcrypto.a" -DX11_SM_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libSM.a" -DSDL_LIBRARY:STRING="/usr/lib/i386-linux-gnu/libSDLmain.a;/usr/lib/i386-linux-gnu/libSDL.a;-lpthread" -DCMAKE_AR:FILEPATH="/usr/bin/ar" -DOPENSSL_SSL_LIBRARY:FILEPATH="/usr/lib/i386-linux-gnu/libssl.a" -DCMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="-static" -DX11_ICE_LIB:FILEPATH="/usr/lib/i386-linux-gnu/libICE.a" Cache file: TIGHTVNC_FILETRANSFER:BOOL=1 X11_Xdamage_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXdamage.a JPEG_INCLUDE_DIR:PATH=/usr/include JPEG_LIBRARY:FILEPATH=/usr/lib/i386-linux-gnu/libjpeg.a X11_Xau_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXau.a CMAKE_FIND_LIBRARY_SUFFIXES:STRING=.a LIBGCRYPT_LIBRARIES:FILEPATH=/usr/lib/i386-linux-gnu/libgcrypt.a SDLMAIN_LIBRARY:FILEPATH=/usr/lib/i386-linux-gnu/libSDLmain.a CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=-static BUILD_SHARED_LIBS:BOOL=0 X11_Xt_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXt.a X11_Xxf86vm_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXxf86vm.a GNUTLS_LIBRARY:FILEPATH=/usr/lib/libgnutls.a X11_Xfixes_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXfixes.a CMAKE_STATIC_LINKER_FLAGS:STRING= BUILD_STATIC_LIBS:BOOL=0 LIBDL_LIBRARY:FILEPATH=/usr/lib/i386-linux-gnu/libdl.a BUILD_SHARED_LIBRARIES:BOOL=0 X11_X11_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libX11.a X11_Xext_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXext.a ZLIB_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libz.a X11_Xdmcp_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libXdmcp.a CMAKE_INSTALL_PREFIX:PATH=/usr/local CMAKE_EXE_LINKER_FLAGS:STRING=-static CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= PNG_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libpng.a CMAKE_BUILD_TYPE:STRING= OPENSSL_CRYPTO_LIBRARY:FILEPATH=/usr/lib/i386-linux-gnu/libcrypto.a X11_SM_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libSM.a SDL_LIBRARY:STRING=/usr/lib/i386-linux-gnu/libSDLmain.a;/usr/lib/i386-linux-gnu/libSDL.a;-lpthread CMAKE_AR:FILEPATH=/usr/bin/ar OPENSSL_SSL_LIBRARY:FILEPATH=/usr/lib/i386-linux-gnu/libssl.a CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=-static X11_ICE_LIB:FILEPATH=/usr/lib/i386-linux-gnu/libICE.a After i do cmake --build . i get the following: [ 43%] Building C object CMakeFiles/vncserver.dir/libvncserver/rfbcrypto_gnutls.c.o [ 44%] Linking C shared library libvncserver.so [ 44%] Built target vncserver Scanning dependencies of target examples_pnmshow24 [ 45%] Building C object CMakeFiles/examples_pnmshow24.dir/examples/pnmshow24.c.o [ 46%] Linking C executable examples_pnmshow24 /usr/bin/ld: attempted static link of dynamic object `libvncserver.so.0.9.11' collect2: error: ld returned 1 exit status CMakeFiles/examples_pnmshow24.dir/build.make:103: recipe for target 'examples_pnmshow24' failed make[2]: *** [examples_pnmshow24] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/examples_pnmshow24.dir/all' failed make[1]: *** [CMakeFiles/examples_pnmshow24.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2 As you can see it says: [ 44%] Built target vncserver , but no libvncserver.a file is created in the build directory, only *.so which is shared library. How can i force the config to build static versions? BUILD_SHARED_LIBS OFF seems to have no effect, and manual approach with linker fails too -- Beef Taco |