【问题标题】:Static linking with Qt third-party libraries与 Qt 第三方库的静态链接
【发布时间】:2017-01-30 22:58:13
【问题描述】:

我目前正在尝试使用内置第三方库在 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)

如您所见,二进制仍然在系统中的某处寻找 jpeg tiff 和 png

【问题讨论】:

  • 您找到解决方案了吗?下面的答案对我不起作用。它实际上使链接器失败,例如 /usr/bin/ld: cannot find -lgbm (and I have libgbm-dev installed)

标签: c++ linux qt


【解决方案1】:

静态 Qt 构建只会静态链接 Qt 库,没有别的。您仍然会有各种动态链接库依赖项。

您的项目中不需要CONFIGURE += static,您需要的是通过QMAKE_LFLAGS += -static 传递链接器标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 2021-08-09
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多