文章目录
  • 一、前言
  • 二、linuxdeployqt下载安装
  • 三、Qt环境变量配置
  • 四、准备Qt可执行文件
  • 五、打包
  • 六、封装成deb安装包


一、前言

在Windows下进行Qt开发,软件开发好之后可以使用windeployqt进行打包,然后程序就可以移动到其它电脑上运行了

在Linux下同样可以进行打包,使用linuxdeployqt


二、linuxdeployqt下载安装

 下载地址:https://github.com/probonopd/linuxdeployqt/releases

Linux下Qt程序打包_环境变量


下载结束之后进行安装。

1、为了方便使用,将名字改短一点:

mv linuxdeployqt-6-x86_64.AppImage linuxdeployqt
  • 1.

2、修改权限

chmod 777 linuxdeployqt
  • 1.

3、把linuxdeployqt可执行文件放到/usr/local/bin目录下,方便在任何目录都可以访问

mv linuxdeployqt /usr/local/bin
  • 1.

4、测试是否安装成功

linuxdeployqt --version
  • 1.

Linux下Qt程序打包_Qt_02


输出版本信息,表示安装成功。


遇到的问题:下载的linuxdeployqt版本太新

linuxdeployqt  (commit 8cb9438), build 67 built on 2024-07-09 18:22:04 UTC ERROR: The host system is too new. 
Please run on a system with a glibc version no newer than what comes with the oldest currently supported mainstream distribution (Ubuntu Focal Fossa), which is glibc 2.31. 
This is so that the resulting bundle will work on most still-supported Linux distributions. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340
  • 1.
  • 2.
  • 3.

解决办法:下载更旧的版本,即可解决!


三、Qt环境变量配置

工具会根据生成的可执行文件,自动搜索依赖,
所以我们需要确保Qt库的相关路径设置到环境变量中,这样工具在搜索时才能找到,并拷贝它们。

另外拷贝文件,对环境变量的使用,不想要重启系统那么麻烦,所以我们修改.bashrc文件,仅对当前用户永久有效。

vim ~/.bashrc
  • 1.

在.bashrc文件末尾,追加内容如下:

#add qt env
export PATH=/opt/Qt5.13.0/5.13.0/gcc_64/bin:$PATH
export LIB_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/lib:$LIB_PATH
export PLUGIN_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/plugins:$PLUGIN_PATH
export QML2_PATH=/opt/Qt5.13.0/5.13.0/gcc_64/qml:$QML2_PATH
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

其中,/opt/Qt5.13.0/5.13.0/gcc_64是本次测试环境Qt安装目录,大家根据自己的情况替换。

然后,使用source命令让文件立即生效。

source ~/.bashrc
  • 1.

然后,对环境变量测试下,是否设置正确。如下:

qmake -v
  • 1.

Linux下Qt程序打包_运维_03


四、准备Qt可执行文件

1、新建文件夹ADS-RTSim

mkdir ADS-RTSim
  • 1.

2、将Qt可执行文件复制到文件夹ADS-RTSim

cp /home/emtp/QtProject/build-DGRSS-Release/release/ADS-RTSim /home/emtp/ADS-RTSim
  • 1.

3、ldd查看Qt程序库依赖

ldd ADS-RTSim
  • 1.

Linux下Qt程序打包_运维_04


如果上面某个库输出是not found,则说明ldd找不到这个库,需要将库复制到/usr/local/lib目录下

4、安装patchelf

sudo apt install patchelf
  • 1.

五、打包

linuxdeployqt ADS-RTSim -appimage
  • 1.

Linux下Qt程序打包_qt_05


Linux下Qt程序打包_qt_06


运行测试:

./AppRun
  • 1.

Linux下Qt程序打包_qt_07


为了测试在没有搭建Qt环境的PC上能不能执行,可以将环境变量注释掉

export
  • 1.

Linux下Qt程序打包_运维_08


输出这些就是有环境变量,可以使用#注释掉,然后重新export查看

没有这些输出了,然后再执行打包的Qt程序,如果能执行,那迁移到别的PC上应该也没有问题!


六、封装成deb安装包