【QT】QT的学习:在Ubuntu中打包QT程序。

1.在Qt Creator中将需要打包的项目配置为Release模式,然后构建项目,在Release目录下生成可执行文件(例:myApp);

2.新建一个文件夹作为输出目录(例:output),将Release目录下的可执行文件myApp拷贝到输出目录output,并执行chmod +x myApp

3.打开终端,cd到输出目录output中,然后执行 ldd myApp 可以查看myApp依赖的所有库,然后将所有依赖的库拷贝至output文件夹下。这个操作比较繁琐,所以我们直接用脚本一次性拷贝,在output文件夹下新建cplib.sh,将以下内容粘贴至cplib.sh中:

#!/bin/sh  
 
exe="myApp"         #修改发布程序的名称
des="/home/output/" #修改输出可执行文件路径
 
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des 

4.在终端执行chmod +x cplib.sh,然后执行 ./cplib.sh,此时所有依赖的库均被拷贝至output文件夹下。

5.在output文件夹下新建myApp.sh文件,注意这里文件名一定是(可执行文件名 + .sh),将以下内容拷贝至myApp.sh中:

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  
      
dirname=`dirname $0`  
tmp="${dirname#?}"  
      
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "$@" 

6.执行chmod +x myApp.sh,软件至此打包完成。注意:运行软件的时候,执行的是 ./ myApp.sh, 而不是直接运行myApp。

 7.将输出文件夹拷贝至目标平台上会丢失执行权限,可以执行chmod +x myApp和chmod +x myApp.sh,然后执行./myApp.sh即可运行软件。

转自:Ubuntu下Qt软件打包流程

猜你喜欢

转载自blog.csdn.net/ipfpm/article/details/82381732