前段时间须要在linux下开发QT的串口程序,有一块板子已经python
安装好QT做为调试机,须要打包给没装开发环境的板子作测试linux
打包步骤以下:shell
1)使用QT编译完以后在debug/release文件夹下获得可执行文件如demoapp
2)新建一个文件夹如demoPack,把demo拷贝这个地方测试
3)新建一个脚本文件pack.sh,做用是提取lib文件,内容以下:debug
#!/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 "$@"
文件夹以下图:code
5)在当前文件夹鼠标右键打开终端,输入./pack.shblog
若是遇到权限不够,输入chmod 777 pack.sh,在执行./pack.sh开发
执行成功以后会获得依赖的lib文件,如图:
6)测试是否能够执行,在终端输入./demo.sh,遇到的问题可能会有
若是遇到权限不够,能够使用chmod命令对shell脚本赋予权限
如: chmod 777 ./demo.sh;
若是遇到执行遇到Permission denied,是文件夹权限的问题,
输入如:sudo chmod -R 777 当前文件夹路径
7)这个文件夹就能够在未安装QT的板子上测试使用