ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux系统下Qt程序的打包

2022-08-01 17:35:09  阅读:199  来源: 互联网

标签:Qt appDir HelloWorld PWD sh Linux dirname 可执行程序 打包


在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有