簡體   English   中英

與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 

然后我使用CONFIGURE + = static選項構建我的應用程序Resulted二進制文件仍然有一些依賴項,但它不應該。 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來傳遞鏈接器標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM