系统相关
首页 > 系统相关> > Linux系统下Qt程序的打包

Linux系统下Qt程序的打包

作者:互联网

在Linux用Qt开发的程序,如果想要在别的Linux主机上运行,那么需要把可执行程序和所依赖的链接库都打包才可以。

1、编译文件

在Qt中使用release的方式编译出可执行文件。

2、创建脚本

(1).创建copy_libs.sh拷贝可执行程序以及所依赖的链接库到指定目录下

#!/bin/sh
appName="HelloWorld"  #可执行程序的名称
appDir=$PWD/app     
mkdir $appDir  #创建打包文件夹
cp $PWD/HelloWorld $appDir  #将可执行程序拷贝到打包文件夹中
cp $PWD/HelloWorld.sh $appDir
deplist=$(ldd $appName | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') #获取可执行程序所依赖的动态链接库
cp $deplist $appDir #将所依赖的动态库拷贝到打包文件夹中

(2).创建脚本HelloWorld.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 "$@"                     

执行./copy_libs.sh

依赖的动态库文件会拷贝到指定目录下,如下图所示:

 

执行./HelloWorld.sh运行可执行程序

 

标签:Qt,appDir,HelloWorld,PWD,sh,Linux,dirname,可执行程序,打包
来源: https://www.cnblogs.com/QingYiShouJiuRen/p/16541081.html