一:打包工具的下载


1.linuxdeployqt
https://download.csdn.net/download/leoeitail/11257960

2.patchelf
https://download.csdn.net/download/leoeitail/11257992

3:appimagetool
https://download.csdn.net/download/leoeitail/11257965

 

二:配置linuxdeployqt


1:将 linuxdeployqt-5-x86_64.AppImage 重新命名成配置 linuxdeployqt ,移动到 /usr/local/bin目录下

sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
chmod 777 linuxdeployqt
sudo mv ./linuxdeployqt /usr/local/bin
sudo linuxdelpoyqt --version
linuxdeployqt 4 (commit 988d294), build 481 built on 2018-02-02 15:05:23 UTC

2.显示版本表示安装成功。

 

三:配置patchelf


1.下载并且解压文件夹,进入patchelf解压的文件夹后执行如下命令

./configure
make
sudo make install

四:配置appimagetool


1:将appimagetool-x86_64.AppImage重新命名成配置appimagetool,移动到 /usr/local/bin目录下

sudo mv appimagetool-x86_64.AppImage appimagetool
chmod 777 appimagetool
sudo mv ./appimagetool /usr/local/bin

五:进入/usr/local/bin目录,执行ls命令出现一下情况

appimagetool  linuxdeployqt  patchelf

表示配置成功

 

六:开始打包程序


1.随便一个目录创建一个文件夹命名为output.AppDir,我的就直接创建在桌面。比如说我的执行程序名字是demo123,将这个文件放到对应的bin目录下(就只放QTCreator release模式下编译的一个执行文件就可以了),这里面的结构我们梳理一下

output.AppDir -- usr -- bin -- demo123
                     -- lib -- *.so
                     -- demo123.desktop
                     -- demo123.png
                     -- AppRun

注意:
lib文件夹是你的软件需要用到的动态库,将所有的动态库拷贝进去
demo123.desktop,demo123.png,AppRun自行创建

2.demo123.desktop中的代码

[Desktop Entry]
Version=1.0
Name=appDesigner
Exec=
Terminal=false
Type=Application
Categories=Development;
Icon=demo123
StartupNotify=true

Name[en_US]=demo123.desktop


4.AppRun中的代码

#!/bin/bash
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
echo "hERe is ${HERE}" //查看当前的路径
 
cd $HERE/usr/bin/

//设置环境变量
export LD_LIBRARY_PATH=$HERE/usr/lib/qtlib:$HERE/usr/lib:$LD_LIBRARY_PATH

//运行执行文件
./demo123

上述AppRun是一段脚本,你们再写的时候,也可以是一个执行文件。

4.开始终端敲代码了。。。。。。

linuxdeployqt demo123 -appimage
这句结束之后,可能AppRun会被覆盖,不过没关系,将上述的代码重新覆盖一下就好了。


appimagetool output.AppDir/
这时候就会生成一个以 .AppImage结尾的执行文件,他就是最后生成出来的文件。

双击即可。完成!


 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐