作者BIAO (超越自己)
看板C_and_CPP
標題[問題] Qt5 Ubuntu動態鏈結庫發佈配置問題
時間Sat Jul 8 23:31:42 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Ubuntu Linux 16.04 Qt5
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GGC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
各位板友大家好,
我想請問Qt5於Ubuntu下發布檔案(含動態庫)至另一台沒有裝Qt庫的問題,
為了測試,我用Qt Creator建立了一個空白的QMainWindow專案,
直接進行編譯,於Qt Creator執行能成功,而於command line執行無法成功,
於是我參照官方文檔,建立.sh檔後執行.sh檔即可成功執行。
http://doc.qt.io/qt-5/linux-deployment.html
(文檔中說明預設名platforms需於執行程序目錄的子目錄且包含libqxcb.so,
而.sh檔是直接拷貝官方內容,並置於執行程序同層級目錄。)
但將執行目錄中的檔案打包至另一台虛擬機的Ubuntu中,
(於打包前有用ldd查詢程序所需動態庫,並複製至執行目錄的子目錄lib下)
執行.sh檔卻出現了..
"it could not find or load the qt platform plugin xcb in"
類似的訊息,用ldd查詢執行檔,所有所需的動態庫皆可於執行目錄的子目錄找到,
(有於.pro檔設定rpath:QMAKE_LFLAGS += "-Wl,--rpath,\'\$$ORIGIN/lib\'"
不論設不設定都得到相同的錯誤訊息)
懇請板上先進給予詳細指引。
以下是我的執行程序目錄結構:
MyApp/
├── lib
│ ├── libicudata.so.56
│ ├── libicui18n.so.56
│ ├── libicuuc.so.56
│ ├── libQt5Core.so.5
│ ├── libQt5DBus.so.5
│ ├── libQt5Gui.so.5
│ └── libQt5XcbQpa.so.5
│ (以下省略..)
│
├── plugins(/Qt/ggc_64/plugins資料夾完整複製)
│ ├── platforms
│
├── platforms(/Qt/ggc_64/plugins/platforms/資料夾完整複製)
│ ├── libqxcb.so
│
│
├── MyApp(可執行文件)
│
├── MyApp.sh
若有板上先進知道如何解決問題,還請不吝賜教,謝謝^^
※ 編輯: BIAO (122.116.193.176), 07/11/2017 11:35:00