首先需要下载打包的工具,打包工具是以下两种:
下载地址:https://github.com/probonopd/linuxdeployqt/releases
a.下载下图所标记的工具:
b.配置linuxdeployqt,命令行输入以下指令:
sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
sudo mv ./linuxdeployqt /usr/local/bin
chmod 777 linuxdeployqt
sudo linuxdelpoyqt --version //查看linuxdeployqt版本
linuxdeployqt 4 (commit 988d294), build 481 built on 2018-02-02 15:05:23 UTC
显示正确的版本表明安装成功。
下载地址:https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.gz
a、下载完成后解压,进入到patcherlf-0.9目录:
b、在该目录下命令行输入以下命令:
./configure
make
sudo make install
c、以上命令执行完之后,进入到/usr/local/bin输入ll命令:
如上图所示就会看到该目录下会出现patchelf文件。
1、命令行输入mkdir output创建一个文件夹,把QtCreator Release模式下编译的可执行文件拷贝到output中。
mkdir output
cp build-jincheng-Desktop_Qt_5_10_0_GCC_64bit-Release/jincheng output
2、进入output目录:
cd output
sudo linuxdeployqt jincheng
一般情况下以上两步就可以完成打包,但也有意外,以下是我打包过程中遇到的问题和解决发方案:
遇到的问题:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
解决方案:sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
保存退出,执行第二步的操作即可完成打包。
注意点:
1、打包时一定要是超级用户,虽然不是超级用户也可以打包,在其他设备也可以执行,但有时会出现异常退出的情况,提示:核心已转储。
2、在拷贝程序包的时候,一定要对该包进行压缩,压缩命令:tar cvf output.tar.gz output,压缩完成后才可以进行拷贝,无法直接拷贝未压缩的程序包。尝试使用zip压缩失败,没有尝试其他压缩方式,有兴趣的小伙伴可以试试。
3、拷贝到别的设备上之后输入以下命令:
tar xvf output.tar.gz
cd output
./Apprun
即可完成该程序在其他设备运行。
疑惑:
我在网上发现打包时输入的命令是:sudo linuxdeployqt jincheng -appimage,这个命令打包和我输入的这个命令:sudo linuxdeployqt jincheng在打包完成后都可以在别的设备上正常执行,这有什么区别求指点。
测试:通过测试可以在别的设备上正常执行,有什么问题的小伙伴提出来大家一起讨论解决,共同进步。