方法1(推荐)

 

步骤1:准备打包工具linuxdeployqt和patchelf

使用linuxdeployqt工具来打包(与windows版的工具windeployqt类似)

linuxdeployqt开源地址:   Release Continuous build · probonopd/linuxdeployqt · GitHub,下载后改名为linuxdeployqt

或者下载源码进行自行编译。

linuxdeployqt工具需要用到另一个开源工具patchelf, 该工具开源地址:GitHub - NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables

patchelf编译方法

 

 

 将编译好的linuxdeployqt复制到/usr/local/bin目录下,并检查/usr/local/bin目录下是否有linuxdeployqt和patchelf这2个工具

 

 

 

步骤2:设置QT环境变量

在~/.bashrc(/home/username/.bashrc)中添加以下环境变量,其中“/home/XXX/Qt”是Qt的安装目录,"XXX"是用户名

export PATH=/home/XXX/Qt/5.15.2/gcc_64/bin:$PATH    #Qt安装目录下的bin目录
export LD_LIBRARY_PATH=/home/XXX/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH   #Qt的运行库目录
export QT_PLUGIN_PATH=/home/XXX/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH  #Qt的插件目录
export QML2_IMPORT_PATH=/home/XXX/Qt/5.15.2/gcc_64/qml:$QML2_IMPORT_PATH   #Qt的qml目录

 

 

 

步骤3:同windeployqt的方法,使用以下命令打包 linuxdeployqt appname -appimage 

linuxdeployqt appname -appimage

 

 

 

 

 

方法2

 

在编译好的软件的同目录下创建一个新的.sh文件,在文件中输入以下内容:

#!/bin/sh
appname="DashBoardPluginTestProject"        // 此处双引号内的内容为编译号的程序的名称
path="/home/hades/MyProject/release"          // 此处双引号内的内容为程序所在的完整路径

deplist=$(ldd $appname | awk '{if(match($3,"/")){printf("%s "), $3}}')
cp $deplist $path

posted on 2021-10-11 14:45  大王背我来巡山®  阅读(1648)  评论(0)    收藏  举报