备注:通过对网上很多打包方法的测试,发现都存在或多或少的不尽人意的地方。本次,笔者采用linuxqt+appimage 进行打包,这样的好处不言而喻,打包后生成的是Image,这意味着对部署环境没有依赖,不需要安装配置库文件,只要打包没问题,在别的应用环境中是很好部署的。
一、环境搭建:
准备linuxdeployqt patchelf appimagetool三个工具,后面会用到。
1.下载linuxdeployqt:最简单的方法直接下载编译好的 linuxdeployqt-x86_64.AppImage文件,将其改名字为linuxdeployqt,并用chmod a+x添加权限,然后复制到 /usr/local/bin/。然后命令行输入 linuxdelpoyqt –version,输出linuxdeployqt 版本就安装成功。
linuxdeployqt-x86_64.AppImage 下载地址,https://github.com/probonopd/linuxdeployqt/releases
2.patchelf
下载地址:https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.gz
可参考以下博客中的下载和环境搭建方法。
https://blog.csdn.net/u014746574/article/details/79288727
https://blog.csdn.net/kuer1379/article/details/82885810
https://blog.csdn.net/bkbliu/article/details/88090465
二、打包流程:
1.创建一个文件夹,名字可随意,最好起一个有意义的名字,比如“out”,“output”等。作为打包操作的根目录。
2.将需要打包的工程进行编译,选择“release”版本,切记。将生成的可执行文件拷贝到打包根目录;
3.执行“linuxdeployqt +可执行程序名字”;如图所示;
4.在“out”目录下,再创建两个文件,一个是应用程序的logo文件,比如“logo.png”,另一个叫“可执行文件名字.desktop”,比如需要打包的可执行文件名叫“robotcontrol”,那么,打包文件名字就必须叫“robotcontrol.desktop”.
5.创建一个图标文件,命名为“logo.png”,再创建一个桌面文件,robotcontrol_ex.desktop,对于桌面文件,需配置的内容较固定,可拷贝一个别的打包工程中的桌面文件,然后改名即可。下面是文件内容:
其中,type项表示打包程序的类型,比如我们打包的应用程序为可执行程序,一般配置为“Application”,
Name 和Exec为可执行程序的名字,Comment是一个注释说明内容。根据自己实际情况填写,一般要填写的有意义。,Icon 指的是应用的图标文件名,但不要带文件后缀和引号。
Categories指的是应用程序的种类,一般不需要修改。
Terimal项指示打包后的应用程序是否支持在控制台运行。
6.在打包的根目录中,执行“cd ..”,执行生成image命令:appimagetool + 打包根目录,如图,见到“success”则执行成功。
7.在out 同级目录下,可以看到以可执行程序名字命名的.appimage 文件,即为最终生成的可执行镜像文件,拷贝到别的电脑进行验证,大功告成。