Linux中QT程序打包
目的:将Linux下自己写好的程序进行发布或者拷贝到其他电脑上运行。
工具:patchelf cmake linuxdeploy
- 安装patchelf软件
sudo apt install patchelf
- 安装cmake软件
sudo apt install cmake
- 编译QT的环境变量,把环境变量写入~/.bashrc中,然后执行source命令,让其立即生效不需要重启
在bashrc文件中添加以下内容:
#add QT ENV
export PATH=/home/humboldt/Qt5.10/5.10.0/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/humboldt/Qt5.10/5.10.0/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/humboldt/Qt5.10/5.10.0/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/humboldt/Qt5.10/5.10.0/gcc_64/qml:$QML2_IMPORT_PATH
- 用git 工具从github网站下载linuxdeployqt安装文件,这里注意,网上其他文章提到下载编译好的文件,我这里不推荐使用,编译好的文件我下载安装过,打包文件时会报错,这是用编译好的文件安装后的报错内容:
ERROR:This host system is too new 等信息
处理方式:通过从github上下载源文件进行修改编译方式
执行如下命令下载源文件:
git clone https://github.com/probonopd/linuxdeployqt.git --depth=1
- 修改编译源文件,进入到下载的linuxdeployqt文件夹中,进入tools/linuxdeployqt目录下的main.cpp文件中
将如下内容注释掉
- 编译修改好的源文件,进入到linuxdeployqt目录下
cmake CMakelists.txt
make
- 将编译好的linuxdeployqt文件拷贝到/usr/local/bin文件中。编译好的linuxdeployqty源文件文件在linuxdeployqt/tools/linuxdeployqt中,cp 到/usr/local/bin文件中
sudo cp linuxdeployqt/tools/linuxdeployqt/ linuxdeployqt /usr/local/bin
执行linuxdeployqt -version命令查看是否安装成功
- 编译一个文件试试,QT中写好程序编译成release版,然后将可执行文件拷贝到一个空文件夹中,执行下面命令
linuxdeployqt xxxx -appimage(xxxx是需要编译的可执行文件)
将整个文件夹拷贝到其他电脑运行 ./AppRun 看是否成功
提供一下上传资料的地址:
https://download.****.net/download/shetougong/12816837
资料中有两份文件,一份是源文件也就是我文章中说的需要自己手动注释些内容然后用camke、make工具编译,还有一份是github上编译好的文件,不建议使用