原创

在Linux下用sh打包发布可执行文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://ailearning.blog.csdn.net/article/details/88080577

我们在linux下编写代码时,会用到一些额外的库(动态或者静态),如小编在qt下写opencv的程序,是在电脑上,项目需求,需要将其移植到嵌入式板子上。小编这里提供一种简单的方法,将我们在电脑上开发好的程序,可以打包复制到其他只要是Linux系统就可以运行,不需要再配置复杂的开发环境。
这里小编用qt下写的一个opencv程序示例:
1.利用qt生成可执行文件,使用release的方式编译出可执行文件,然后新建一个文件夹,将可执行文件拷贝进去备用。
在这里插入图片描述
小编这里生成的文件是这样的:
在这里插入图片描述
2.利用脚本文件
2.1新建文件
2.1.1pask.sh
2.1.2test2.sh 这个脚本文件名必须和要发布的程序名字相同,所以为 Server
新建文件后,文件夹包含内容如下:
在这里插入图片描述
2.2 添加脚本
向pack.sh文件里添加以下内容:

#!/bin/sh  
exe="test2" #你需要发布的程序名称
des="/home/shang/test" #创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

然后向test2.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 "$@"

执行脚本
终端进入文件夹目录,运行:

sh ./pack.sh

可执行文件依赖的链接库将会拷贝到所在的目录,如图:
在这里插入图片描述
打包发布
将上面整个文件夹,复制拷贝到其他linux系统,在文件夹路径内终端运行:

./test2.sh

即可

文章最后发布于: 2019-03-02 20:09:14
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览