我目前正在尝试使用内置的第三方库在Linux下静态构建Qt 5.8。 这是我的配置:
./configure -static -prefix ~/Qt/5.8/static -opensource -confirm-license -openssl-linked -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-xkbcommon -qt-freetype -nomake examples -nomake tests -skip qtwebkit -skip qtserialport -skip qtwebkit-examples
然后我使用CONFIGURE + = static选项构建我的应用程序 结果二进制文件仍然有一些依赖项,但它不应该。 ldd输出(简称为简短):
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5
libwebp.so.5 => /usr/lib/x86_64-linux-gnu/libwebp.so.5
libwebpdemux.so.1 => /usr/lib/x86_64-linux-gnu/libwebpdemux.so.1
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
libEGL.so.1 => /usr/lib/nvidia-361/libEGL.so.1 (0x00007f9334bce000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0
libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f93315ba000)
如您所见,二元stil在系统中的某处寻找jpeg tiff和png
答案 0 :(得分:0)
静态Qt构建只会静态链接Qt库,没有别的。您仍将拥有各种动态链接库依赖项。
您的项目中不需要CONFIGURE += static
,您需要的是通过QMAKE_LFLAGS += -static
传递链接器标记。