LinuxDeployQT打包QT程序
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
系统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
编译在linuxdeployqt目录下执行 sudo cmake CMakeLists.txt生成Makefile文件
执行make编译 sudo make -j8
编译成功后在linuxdeployqt/tools/linuxdeployqt/目录下生成linuxdeployqt可执行程序
将编译好的程序复制到/usr/local/bin/目录下
然后修改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目录下
然后双击这个xxxx.desktop就可以启动程序了