ubuntu16.04发布

将ubuntu16.04的qt编译环境,发布到没有qt环境的ubuntu16.04的机器上。

有两种方式,一种是手动打包,需要将所需的库导出等。第一种是是用打包工具linuxdeployqt,本文采用第二种。

1.首先去https://github.com/probonopd/linuxdeployqt/releases下载已经编译好的版本

2.下载完成后 进入下载好的目录,将其重命名

sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt

3.将重新命名好的文件,移动到/usr/local/bin

mv ./linuxdeployqt /usr/local/bin

4.执行linuxdelpoyqt --version查看版本

root@scdz-virtual-machine:/home/scdz# linuxdeployqt --version
linuxdeployqt 4 (commit ac2d5c2), build 561 built on 2018-07-09 18:54:52 UTC

5.测试一下qmake

需要设置下环境变量

我的是

export PATH=/opt/Qt5.6.3/5.6.3/gcc_64/bin/:$PATH,其他版本根据qt安装目录自行修改

再次执行qmake

可以看到qmake正常了

 

至此,linuxdeployqt安装完成。

6.首先,在linux下将程序发布为release版本。并新建一个目录。以test485r为例

 

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

 

 

查看

 在test485r目录下,运行

linuxdeployqt ./Test485 -appimage

可以看到,爆了一个错误。可能会提示其他的缺少库,但,这不是问题,本来如果是一个简单的qwidget程序,是不会报错的,但

由于我的程序需要调用sqlite,串口等,所以就会报这个错,一开始被这个错弄的焦头烂额,装了一大堆东西,一个又一个的新错误又爆了出来

最后没办法,干脆不去管了。

运行

linuxdeployqt ./Test485 -appimage -no-plugins

 

 可以看到,编译成功。

8.将发布好的程序拷贝到没有安装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,成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值