我想包括libQtGui.so.4 libQtNetwork.so.4和libQtCore.so.4在我的應用程序所在的同一目錄中。我如何讓Qt理解這一點? y的目的是使用共享庫的獨立應用程序如何設置Qt應用程序找到Qt模塊的位置?
回答
設置LD_LIBRARY_PATH環境變量是一個選項。例如:
export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH
另一種選擇是在鏈接期間設置Qt應用程序的RPATH。將RPATH設置爲「$ ORIGIN」值將導致動態鏈接程序在運行時查找與Qt應用程序相同的目錄。例如,如果使用QMAKE,添加以下代碼片段到你的項目文件:
unix:!mac{
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
QMAKE_RPATH=
}
這將設置RPATH爲「$ ORIGIN:$ ORIGIN/lib目錄下:$ ORIGIN /庫」,這意味着動態鏈接器會首先查看Qt應用程序的位置,然後查看其位置的lib子目錄,然後查看其位置的libs子目錄,最後查看任何系統定義的位置。
似乎沒有工作。 – 2010-03-23 16:33:34
這裏是編譯輸出:「g ++:unrecognized option'-wl, - rpath = $ ORIGIN'」「g ++:無法識別的選項'-wl, - rpath = $ ORIGIN/lib'」「g ++:無法識別的選項' - wl, - rpath = $ ORIGIN/libs'「 – 2010-03-23 16:38:26
直接在Makefile中手動刪除這些內容,再次按下構建所有內容,然後通過...現在試用它。 – 2010-03-23 17:18:02
在查看系統標準庫之前,UNIX/Linux將首先查找LD_LIBRARY_PATH(如果已設置)。所以如果你設定了,你確實可以覆蓋。就像在Windows上設置PATH一樣。同樣的效果。訂購很重要。
您可以添加./或。到LD_LIBRARY_PATH。
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
我試過了,它不起作用。我進入項目並將LD_LIBRARY_PATH更改爲。但是當我回到終端並輸入ldd ./MyApp時,沒有任何變化...我正在從GUI構建...我應該從命令行嘗試嗎? – 2010-03-23 02:51:43
LD_LIBRARY_PATH
和QMAKE_RPATH
從來沒有爲我工作。相反,我在我的.pro
文件中設置了QMAKE_RPATHDIR
。例如,在構建並安裝(make install
)Qt之後,它已被放置在/usr/local/Trolltech/Qt-4.8.5/lib/
中。然後,我寫我的.pro
文件中的以下內容:
QMAKE_RPATHDIR += /usr/local/Trolltech/Qt-4.8.5/lib/
注1:使用相對路徑似乎並沒有工作。偏好絕對路徑。
注2:當你再make
,你可以看到下面的選項被傳給連接器:-Wl,-rpath,/usr/local/Trolltech/Qt-4.8.5/lib/
注3:爲確保動態二進制鏈接到正確的庫,可以顯示在運行時通過qVersion()
提供的Qt版本。
- 1. 如何找到Qt應用程序的全局屏幕位置?
- 2. 如何找到Qt庫的位置
- 3. 使用Qt時OpenGL模塊的位置
- 4. Qt Creator中的Qt GUI應用程序構建設置
- 5. 如何使用Qt-Creator在OSX Mountain Lion上設置調試Qt應用程序?
- 6. 如何在Qt的應用程序加載設置和QSettings
- 7. 如何在Symbian上的QT中設置應用程序圖標?
- 8. 如何在Qt中設置應用程序範圍的代理設置?
- 9. 如何在Qt中設置應用程序圖標
- 10. QT位置類
- 11. Qt選擇迴應位置
- 12. 設置Qt Creator以調試到Qt類
- 13. Qt QMenu的位置
- 14. Qt - 設置相對鼠標位置
- 15. 打開位置設置安卓與QT
- 16. Qt:設置IP
- 17. Qt指定某些應用程序數據的位置
- 18. 使用QSettings存儲qt應用程序的設置
- 19. 將應用程序代碼放在QT應用程序上的位置?
- 20. 如何在qt中設置小部件的絕對位置
- 21. MAC上的QT/C++ - 應用程序圖標未設置
- 22. Qt Linguist - 設置應用程序的翻譯器
- 23. 設置Qt應用程序的顯示刷新率
- 24. 如何找到Qt應用程序的安裝目錄?
- 25. Qt - QTextStream - 如何將光標位置設置爲行首?
- 26. Qt - 設置好友
- 27. 用Qt構建64位應用程序
- 28. Qt:在Android和iOS上設置應用程序圖標
- 29. 從Qt應用程序設置Linux主卷
你也可以決定靜態鏈接到Qt庫,這樣你就不會依賴於本地安裝的Qt版本(這是Opera在Linux下如何使用它) – sisis 2010-03-23 02:34:33
在平臺上靜態鏈接的問題我是部署on是fontconfig被竊聽(紅帽5.3使用fontconfig 2.4.1) – 2010-03-23 02:57:29
當我嘗試靜態構建時,有一個未定義的引用FcTypeFreeQueryFace,當我嘗試更新fontconfig時,它告訴我fontconfig是最新的... ..bummer ..然後我必須找到一種方法來修改Qt文件,以使用我提供的fontconfig版本進行構建。我能夠使用我提供的fontconfig動態構建我的應用程序,但不是靜態的 – 2010-03-23 02:58:56