Linux环境中Qt5程序发布

来源:互联网 发布:苹果软件商店 编辑:程序博客网 时间:2024/06/05 00:53

在网上也看到这样的博客, 但都没有解决我的问题, 脑壳痛!

在此我把我的方法发出来, 希望能帮到在看的你!!! 


(1) 在Qt5中生成一个Release版本的可执行文件             obj


(2)用ldd obj可看到关于obj的 .so文件, 在开发环境中的相应目录下把关于libQt5*.so(共享库 和 链接)都copy到test(自己随意创建一个名字:mkdir  test),  可执行文件 (obj) 也放到 test 中, 最后创建一个与可执行文件同名的shell脚本(我这里名字就为obj.sh);

 obj.sh 脚本中内容如下:

#!/bin/shappname=`basename $0 | sed s,\.sh$,,`    dirname=`dirname $0`  tmp="${dirname#?}"    if [ "${dirname%$tmp}" != "/" ]; then  dirname=$PWD/$dirname  fi  LD_LIBRARY_PATH=$dirname  export LD_LIBRARY_PATH  $dirname/$appname "$@" 
运行脚本:

sh obj.sh

或者

chmod a+x obj.sh

./boj.sh

出现如下错误:


解办法:

(3)在test中创建(只能是这个文件夹:mkdir platforms)platforms文件夹,  把 libqxcb.so(自己到所按装Qt的目录下去搜一下就能出来)

放到自己创建的platforms中,再执行脚本还是会报错, ldd libqxcb.so 会发现 libQt5DBus.so.5 、 libQt5XcbQpa.so.5两个文件test中

是没有的,自己到所按装Qt的目录下去搜一下把这个两个共享库文件和链接都copy 到 test 中;OK! 大功告成!

现在test中的文件夹中有: libQt5*.so (共享库文件和其链接文件), platforms文件夹, 可执行文件obj, shell脚本obj.sh(路径设置); 

而platforms只有一个libqxcb.so文件!!!

现在把test文件夹打包压缩放到目标环境中去, 解压过后, 运行obj.sh脚本, OK!!!



原创粉丝点击