说明:
1.主要依赖linuxdeployqt打包工具
2.打包Linux上的QT界面软件,使其不依赖QT开发环境
linuxdeployqt安装过程:
- 不能下载官方编译好的.appimage文件,会报告gblic的问题
- 下载官方源码
- 修改main.cpp,屏蔽掉版本判断部分,否则还会报gblic的问题
- 可能会报Git错误,不是GIT仓库,找不到commit ID等,解决办法---屏蔽掉其cmakelist中的GIT相关部分,或直接git https://github.com/probonopd/linuxdeployqt/releases
编译安装过程:
1.根目录下:cmake CmakeList.txt
2.make //此时tool/linuxxxxx下会生成linuxdeployqt可执行的二进制文件,
3.将linuxdeployqt可执行文件复制到/usr/local/bin,之后 sudo chmod 777 linuxdeployqt
参考链接:
(本人实测!)Linux下使用linuxdeployqt打包Qt项目用于移植 - 灰信网(软件开发博客聚合)
Ubuntu下使用linuxdeployqt打包Qt程序 - 星星,风,阳光 - 博客园
其他工具:
1. patchelf
sudo apt install patchelf
2. appimage
https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
下载完成后执行如下命令:
sudo mv appimagetool-x86_64.AppImage appimagetool chmod 777 appimagetool sudo./appimagetool /usr/local/bin |
以上安装完成后进入usr/local/bin目录执行ls其中包含如下三个则说明打包工具安装成功,之后就可以开心的进行项目移植打包喽!
可能报错:
1.ERROR: "/usr/bin/qmake -query" exited with 1 : "qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory\n 找不到qt
分析:
qtchooser默认选择路径中没有指向qmake路径,需修改成自己的路径
解决方法:
cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser vim default.conf |
打包过程:
1.创建一个collectdabao文件夹,考入datacollect文件(QT-release模式下编译形成的可执行文件)
2. linuxdeployqt datacollect --appimage
3.此时该目录下会有lib doc plugins translations文件夹等众多so文件
4.修改或创建./desktop文件,复制到桌面,chmod 777 双击----信任此文件
./desktop 内容
[Desktop Entry]
Encoding=UTF-8
Name=COLLECT
Exec=/home/mlw/Desktop/collectdabao/datacollect #根据软件的具体执行路径修改,务必是绝对路径
#Icon=/home/home/Desktop/icon.png #根据软件的具体执行路径修改
Terminal=false #软件打开时是否启动终端
StartupNotify=false
Type=Application
Categories=Application;Development;
更新软件包注意事项
- 不能只更新datacollect可执行文件,需重新执行打包
- 打包后将目标机器内的所有文件进行更新
更新流程:
1.QT-relese编译,生成新的datacollect文件
2.cp datacollect 到打包文件夹
3.在打包文件夹执行linuxdeployqt datacollect -appimage
4.传输文件夹下所有文件到目标机软件目录
sudo scp * mlw@192.168.1.244:~/Desktop/collectdabao
打包结果(有两种,目前没搞懂原因):
可能由于linuxdeployqt版本原因,产生结果不一样
1.更好的结果
生成.AppImage结尾的文件,这个文件可以直接运行
2.较差的结果,可能还会依赖QT
生成新的可执行文件和.desktop文件,需要修改.desktop里面的路径