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

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

Linux系统下Qt程序的打包

 

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

Linux系统下Qt程序的打包

 

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/278302.html

(0)
上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐

发表回复

登录后才能评论