windows使用QTCreator开发的QT程序移植到Ubuntu18,以及打包发布

一:windows开发的QT程序移植到Ubuntu18

二:windows使用QTCreator开发的程序发布在windows下

windows和Linux开发机QT版本:QT5.13.0
Linux开发机Ubuntu镜像版本:ubuntu-18.04.5-desktop-amd64.iso
Linux测试机(裸机)镜像:ubuntu-18.04.5-desktop-amd64.iso

windows开发的QT程序移植到Ubuntu18

假如工程文件名为test.pro
1.将windows下用MinGW编译生成的项目拷贝到Linux下,仅保留*.h,.c++,.pro,.ui文件以及resource文件夹(如果有resource则添加)。
2.在Ubuntu中环境变量export PATH= /Qt5.13.0/gcc_64/bin:$PATH
3.在Ubuntu中执行qmake生成makfile
4.make 生成一个和pro文件名一样的可执行文件。比如test.pro生成可执行文件 test
5 ./test

打包发布:

可执行文件名为:test

**第一步.**把可执行程序复制到另一个文件夹/home/QT_release/LogIn_Qt

**第二步.**准备两个脚本放到/home/QT_release/LogIn_Qt

第一个脚本:test.sh(名字必须可执行文件名一样,作为启动脚本,且不需要做任何修改)

#!/bin/sh  
appname=`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 "$@"

第二个脚本:XXX.sh(名字不需要相同,作用为获取需要的资源,但是会缺少两个so文件,需要手动添加。需要根据自己的路径修改
假如设置为findLibs.sh

#!/bin/sh  
exe="test" #你需要发布的程序名称
dest="/home/zh/QT_release/LogIn_Qt" #创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $dest

注意脚本格式不能DOS格式,需要改成UNIX格式,可以通过UE 文件->转换->DOS转UNIX

第三步
此时/home/QT_release/LogIn_Qt路径下共有3个文件,可执行文件testtest.shfindLibs.sh
执行findLibs.sh,自动将需要的动态库复制到LogIn_Qt文件夹下,此时会发现/home/QT_release/LogIn_Qt有很多so文件。

第五步
LogIn_Qt整个文件夹拷贝到测试机,测试机不需要安装QT,运行./test.sh

发现xcb错误!
在这里插入图片描述
解决办法:
1.在sh文件的同级路径下创建一个platforms路径
2.找到/home/Qt5.13.0/5.13.0/gcc_64/plugins/platforms路径下的libqxcb.so
3.把libqxcb.so放到platforms下

运行./LLogin.sh发现还是不行,(上边提过缺少两个so文件)
通过export QT_DEBUG_PLUGINS=1发现缺少libQt5XcbQpa.so.5
在这里插入图片描述
在/home/Qt5.13.0/5.13.0/gcc_64/lib中,找到libQt5XcbQpa.so.5.13.0重命名成libQt5XcbQpa.so.5(注意不要复制软连接),把这个动态库放到sh文件同级路径下。

再次运行./LLogin.sh,发现缺少libQt5DBus.so.5
在这里插入图片描述
在/home/Qt5.13.0/5.13.0/gcc_64/lib中,找到libQt5DBus.so.5.13.0并重命名成libQt5DBus.so.5(注意不要复制软连接),把这个动态库放到sh文件同级路径

再次运行,成功!!!

这里是引用
https://blog.csdn.net/u014552102/article/details/81055865
https://blog.csdn.net/qq_27350133/article/details/83445258
https://blog.csdn.net/z3512498/article/details/64922180?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

windows使用QTCreator开发的程序发布在windows下

一:使用MSVC编译成release,windows下一定要是MSVC编译
在这里插入图片描述
二:
把release中生成的文件vitualketboard.exe放到桌面新的文件夹中C:\Users\zh\Desktop\keyboard
此时文件夹中只有一个文件vitualketboard.exe,此时双击exe提示缺少dll。

三:
**找到E:\qt\5.13.0\msvc2017_64\bin下边的windeployqt.exe

使用cmd

在这里插入图片描述
在这里插入图片描述
回车!!

再到新的文件夹中会发现把需要的文件全部补齐,exe可以直接运行。

若不能运行,可参考https://blog.csdn.net/maoyeahcom/article/details/108583124进行调试!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值