我一直在用Qt做個人項目中的一些有趣的東西。我不是這方面的專家,所以如果這是一個愚蠢的問題(猜不是我找不到有用的東西),隨時可以殺死我。C++ Qt:靜態構建和外部dylibs
不管怎麼說,我在OSX,通常我使用shell腳本用以下命令編譯最終版本的Qt針對的靜態版本:
cd "project folder...";
PATH=/Users/TCB13/(...)/qt-source/bin:$PATH; --> Path to my static QT.
export PATH;
qmake -config release;
make;
make clean;
到目前爲止,如果我將編譯的二進制到另一臺計算機沒有安裝Qt,一切正常! ;)
昨天我開始玩一個公司提供的動態庫,我已經將dylib包含在我的.pro文件中,如下所示:(我有一個項目文件夾中的dylib副本)
#macx: LIBS += -L$$PWD/ -lwpsapi
#INCLUDEPATH += $$PWD/
#DEPENDPATH += $$PWD/
當我編譯「靜態」(使用上面的命令)和另一臺計算機上運行它,我得到:
dyld: Library not loaded: @executable_path/libwpsapi.dylib
Referenced from: /Users/TCB13/Desktop/dude111
Reason: image not found
Trace/BPT trap: 5
我發現我的編譯的二進制文件的大小是相同的或沒有包括dylib所以,我googled如何包括和外部自由和有些人是sa因爲我需要在我的.pro文件中添加「CONFIG + = static」。我做到了,文件的大小增加了,但我仍然得到了同樣的錯誤。
希望有人能幫助我。
嗯...圖書館的文件不包括這...我覺得奇怪的是,當我添加了'CONFIG + = static'到.pro文件最終的應用程序是1.4Mb更大的女巫是大小dylib文件...謝謝。 – TCB13
這可能是這樣,但dylib文件不是靜態鏈接的。如果您使用的是gcc工具鏈,則需要.a文件。 –
感謝提示。我會嘗試檢查更「靜態」的解決方案...;) – TCB13