系统:ubuntu20.04
官网可直接下载使用https://github.com/probonopd/linuxdeployqt/releases,但是因为不支持ubuntu20所以本文通过下载源码编译的方式编译linuxdeployqt
安装编译相关依赖
sudo apt-get install git g++ libgl1-mesa-dev wget
安装QT
sudo apt-get install cmake
sudo apt-get install patchelf
下载Linuxdeployqt源码:https://github.com/probonopd/linuxdeployqt
注释掉linux版本的代码 vim tools/linuxdeployqt/main.cpp
![](https://i-blog.csdnimg.cn/blog_migrate/96d4986a940f78c4f929da5a4c53ddd0.png)
编译:在linuxdeployqt目录下执行 sudo cmake CMakeLists.txt生成Makefile文件
![](https://i-blog.csdnimg.cn/blog_migrate/2ab5cc6992fcca4918791887b003f808.png)
执行make编译: sudo make -j8
编译成功后在linuxdeployqt/tools/linuxdeployqt/目录下生成linuxdeployqt可执行程序
![](https://i-blog.csdnimg.cn/blog_migrate/7a6d0ee925839ab316e960d2ff27edd0.png)
将编译好的程序复制到/usr/local/bin/目录下
![](https://i-blog.csdnimg.cn/blog_migrate/e6625ca7a9d60d1cbdfdc254483d8dda.png)
然后修改linuxdeployqt权限:sudo chmod -R 777 /usr/local/bin/linuxdeployqt
下载appimagetool-x86_64.AppImage
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
然后: sudo ap ./appimagetool-x86_64.AppImage /usr/local/bin/appimagetool
配置QT的环境变量: vim ~/.bashrc
加入:(注意下面的QT的安装目录请修改为自己QT的安装路径)
#add QT ENV
export PATH=/home/betterjason/Qt/5.15.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/betterjason/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/betterjason/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/betterjason/Qt/5.15.2/gcc_64/qml:$QML2_IMPORT_PATH
保存文件,然后刷新下配置信息 source ~/.bashrc
打包QT程序方法:
使用Realse方式编译QT程序
新建一个文件夹AppDeploy,将QT编译生成二进制文件复制到AppDeploy文件中
进入AppDeploy文件夹,执行 linuxdeployqt ./xxxx -verbose=2 -appimage
打包完成
打包完成后,在AppDeploy目录下的文件存在一个XXXX.desktop的文件,这个是Linux下程序的启动器,相当于windows下的快捷方式,内容如下
[Desktop Entry]
Type=Application
Name=My Application #应用的名字(快捷方式显示的文字)
Exec=/opt/MyApplication/xxxxx #应用的执行路径(绝对路径)
Icon=/opt/MyApplication/xxxxx.png #应用的图标(绝对路径)大小通常128*128
Comment=This is my demo #说明信息
Terminal=true #是否允许在终端启动
注意:
XXXX.desktop文件需要有执行权限,该文件才能变成图标,否则只是显示一个普通文件。
XXXX.desktop中的路径需要填写deb包的安装路径,非打包路径。
Terminal=true时,启动程序时,会附带启动终端界面,即会出现2个界面。
Terminal=false时,启动程序时,没有终端界面,仅显示程序这一个界面。
将xxxx.desktop 复制到/usr/share/applications/
更改执行权限 chmod a+x /usr/share/applications/xxxx.desktop
将/usr/share/applications/xxxx.desktop 复制到用户的Desktop目录下
![](https://i-blog.csdnimg.cn/blog_migrate/fe2746a9d3a391bfc4e6574949aefab7.png)
然后双击这个xxxx.desktop就可以启动程序了