欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-03 20:14:52
...

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

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

sh ./pack.sh

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

./test2.sh

即可