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/

posted on 2018-07-17 11:54  利科尔多  阅读(1136)  评论(0)    收藏  举报

导航