与Qt第三方库的静态链接
Static linking with Qt third-party libraries
我目前正在尝试使用内置的第三方库在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
然后我使用配置 += 静态选项构建我的应用程序生成的二进制文件仍然有一些依赖项,但它不应该。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
静态Qt构建只会静态链接Qt库,没有其他内容。您仍将拥有各种动态链接库依赖项。
您的项目中不需要CONFIGURE += static
,您需要通过 QMAKE_LFLAGS += -static
传递链接器标志。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?