ubuntu发布qt程序(二)
使用linuxdeployqt打包qt程序
1.首先,在linux下将程序发布为release版本。并新建一个目录。以test485r为例

2.将release目录下生成的文件拷贝到test485r下

查看

在test485r目录下,运行
linuxdeployqt ./Test485 -appimage

可以看到,爆了一个错误。可能会提示其他的缺少库,但,这不是问题,本来如果是一个简单的qwidget程序,是不会报错的,但
由于我的程序需要调用sqlite,串口等,所以就会报这个错,一开始被这个错弄的焦头烂额,装了一大堆东西,一个又一个的新错误又爆了出来
最后没办法,干脆不去管了。

运行
linuxdeployqt ./Test485 -appimage -no-plugins


可以看到,编译成功。
3.将发布好的程序拷贝到没有安装Qt的测试机器上。
将test485r打包,并传到测试机器。
tar czvf tesr485r.tar test485r/
在测试机器上解压
tar -xzvf tesr485r.tar

成功后进入该目录
cd test485r
执行./Test485

结果报错了。
这个时候,需要检查依赖。ls查看目录,可以看到有plugins,进入plugins,进入platforms,ls查看,可以看到libqxcb.so
使用ldd命令查看依赖

可以看到,依赖没有问题。
退回到程序文件夹根目录
查看Test485的依赖

检查了下也没问题。全都加好库了。
这个时候,需要考虑环境变量的定向
在此设置环境变量,定向到程序目录下面
export QT_PLUGIN_PATH=/home/scdz/test485r/plugins/
export LD_LIBRARY_PATH=/home/scdz/test485r/plugins/platforms:$LD_LIBRARY_PATH

运行./Test485,成功

我的程序,需要连接sqlite。
所以,将数据库考进来,放到程序文件夹下
再次运行

可以操作数据库
另外:此处添加环境变量只是临时环境变量,重启后就会消息,建议添加为永久环境变量
参考:https://www.cnblogs.com/franson-2016/p/6063226.html
总结:
查找发布错误,最重要的是查找所需要的依赖库,检查报错的问题需要什么样的依赖库。如果是手动添加的话,更要随时注意。
附:
linuxdeployqt中文说明:https://doc.appimage.cn/docs/linuxdeployqt/
浙公网安备 33010602011771号