前段时间需要在linux下开发QT的串口程序,有一块板子已经
安装好QT作为调试机,需要打包给没装开发环境的板子做测试
打包步骤如下:
1)使用QT编译完之后在debug/release文件夹下得到可执行文件如demo
2)新建一个文件夹如demoPack,把demo拷贝这个地方
3)新建一个脚本文件pack.sh,作用是提取lib文件,内容如下:
#!/bin/sh
exe="demo" #你需要发布的程序名称
des="/home/admin1/demoPack" #创建文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
4)新建一个脚本文件demo.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 "$@"
文件夹如下图:
5)在当前文件夹鼠标右键打开终端,输入./pack.sh
如果遇到权限不够,输入chmod 777 pack.sh,在执行./pack.sh
执行成功之后会得到依赖的lib文件,如图:
6)测试是否可以执行,在终端输入./demo.sh,遇到的问题可能会有
如果遇到权限不够,可以使用chmod命令对shell脚本赋予权限
如: chmod 777 ./demo.sh;
如果遇到执行遇到Permission denied,是文件夹权限的问题,
输入如:sudo chmod -R 777 当前文件夹路径
7)这个文件夹就可以在未安装QT的板子上测试使用