Linux下使用appimage打包程序

一、打包工具

首先需要下载打包的工具,打包工具是以下两种:

1.linuxdeployqt

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

a.下载下图所标记的工具:

Linux下使用appimage打包程序_第1张图片

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

显示正确的版本表明安装成功。

2、patchelf

下载地址:https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.gz

a、下载完成后解压,进入到patcherlf-0.9目录:

Linux下使用appimage打包程序_第2张图片

b、在该目录下命令行输入以下命令:

./configure
make
sudo make install

c、以上命令执行完之后,进入到/usr/local/bin输入ll命令:

Linux下使用appimage打包程序_第3张图片

如上图所示就会看到该目录下会出现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在打包完成后都可以在别的设备上正常执行,这有什么区别求指点。

测试:通过测试可以在别的设备上正常执行,有什么问题的小伙伴提出来大家一起讨论解决,共同进步。

 

 

 

你可能感兴趣的:(Linux,C++)