一、前言
最近在做Qt windows程序在统信uos电脑(arm64)上适配的需求,经过一个多星期的努力,程序可以运行起来,到了打包发布环节,产品经理希望用户可以像windows平台那样,可以一键安装程序,并且桌面生成快捷方式。
经过不断地摸索,最后终于实现了,现在把uos平台程序打包发布的过程记录下来,供大家参考!
二、linuxdeployqt下载安装
windows系统有自动拷贝依赖的工具windeployqt,而linux系统也有个类似的工具,叫linuxdeployqt,uos系统是arm平台,也可以用linuxdeployqt工具拷贝程序依赖库。
1、下载安装linuxdeployqt
如果是linux平台的朋友,可以直接下载已经编译好的linuxdeployqt-x86_64.AppImage,我在uos本也想直接下载这个安装,但是在安装的过程中会报格式错误,所以,uos平台的,还是需要下载源码,自己编译安装。
如果是linux平台,可以只能下载编译好的应用程序文件:
https://github.com/probonopd/linuxdeployqt/releases
讯享网
下载完成之后,修改一下名字:
修改执行权限:
再把这个可执行文件扔进/usr/local/bin目录,这样,我们就可以在其他目录访问了
如果是uos系统,需要源码编译安装
源码下载:https://github.com/probonopd/linuxdeployqt
下载完成后,屏蔽版本信息:
修改源码,去掉版本检查,这个一步不做会导致打包输出错误的信息:
下载完成之后,修改文件夹下 tools/linuxdeployqt/main.cpp
屏蔽代码如下:

源码编译:
将linuxdeployqt拷贝到/usr/local/bin:
测试是否安装成功
终端输入:
如果显示版本信息,说明linuxdeployqt 安装成功。
三、利用linuxdeployqt拷贝依赖文件
这之前这命令之前,你要先配置qt的环境变量,
终端输入vim /.bashrc命令,修改 .bashrc 文件,在文件末尾追加以下内容,其中/home/zlkj/technology/5.9.7是我的Qt安装路径,大家要用自己的路径代替:
生效配置:
测试qt环境变量配置是否生效:查看qmakea版本号
设置成功之后:
新建文件夹,最好是你的应用程序命名
拷贝你要打包的应用程序的执行文件到该文件夹下:
然后执行命令:

XXX: 为可执行程序名字
等待命令执行完毕,如果终端报错如下,可忽略,如果是其他问题,根据实际问题具体解决:

如果命名执行成功之后,你会看到目录下会多几个文件夹及文件,lib目录存放应用程序的依赖,然后你可以把程序依赖其他动态库也放到lib目录下。
可以通过 ldd xxx命令查看依赖的动态库
最后把应用程序依赖的其他文件拷贝到当前文件夹下
qml依赖库:放在qml文件夹下
所用到的插件:放在plugins文件夹下
然后双击应用程序,或者AppRun测试程序是否可以正常运行
自此,利用linuxdeployqt进行程序的打包发布就完成了。
四、打包成deb安装包
利用linuxdeployqt打包的程序是一个文件夹的形式,用户进入文件夹找到可执行程序或者运行脚本才可以启动程序,对于用户体验不够友好,那有没有像windows平台那样,直接双击就可以安装,并且会在桌面生成快捷方式的呢? 答案是有的,那就是uos官方提供的*.deb的形式
我们下篇详细介绍
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146203.html