作者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