LinuxDeployQT打包QT程序

  1. 系统:ubuntu20.04

  1. 官网可直接下载使用https://github.com/probonopd/linuxdeployqt/releases,但是因为不支持ubuntu20所以本文通过下载源码编译的方式编译linuxdeployqt

  1. 安装编译相关依赖

  •  sudo apt-get install git g++ libgl1-mesa-dev wget

  • 安装QT

  • sudo apt-get install cmake

  • sudo apt-get install patchelf

  1. 下载Linuxdeployqt源码:https://github.com/probonopd/linuxdeployqt

  1. 注释掉linux版本的代码  vim tools/linuxdeployqt/main.cpp

LinuxDeployQT打包QT程序_第1张图片
  1. 编译:在linuxdeployqt目录下执行 sudo cmake CMakeLists.txt生成Makefile文件

LinuxDeployQT打包QT程序_第2张图片
  1. 执行make编译: sudo make -j8

  1. 编译成功后在linuxdeployqt/tools/linuxdeployqt/目录下生成linuxdeployqt可执行程序

LinuxDeployQT打包QT程序_第3张图片

将编译好的程序复制到/usr/local/bin/目录下

然后修改linuxdeployqt权限:sudo chmod -R 777 /usr/local/bin/linuxdeployqt

  1. 下载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

  1. 加入:(注意下面的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

  1. 打包QT程序方法:

  • 使用Realse方式编译QT程序

  • 新建一个文件夹AppDeploy,将QT编译生成二进制文件复制到AppDeploy文件中

  • 进入AppDeploy文件夹,执行 linuxdeployqt ./xxxx  -verbose=2  -appimage

  • 打包完成

  1. 打包完成后,在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时,启动程序时,没有终端界面,仅显示程序这一个界面。

  1. 将xxxx.desktop 复制到/usr/share/applications/    

更改执行权限  chmod a+x  /usr/share/applications/xxxx.desktop

     将/usr/share/applications/xxxx.desktop 复制到用户的Desktop目录下    

LinuxDeployQT打包QT程序_第4张图片

         然后双击这个xxxx.desktop就可以启动程序了

你可能感兴趣的:(QT,Creator编程,linux)