在Linux下QT程序打包发布

程序以test为例:app

1. QtCreate使用Release版本编译

2. 从可运行程序的文件中拿出可执行文件,例:test

3. 终端下使用ldd命令查看须要的链接库,例:ldd test

4. 把ldd查询到的全部须要的库导出

这里提供一个脚本loadlib.sh 将ldd打印出来的依赖库复制到指定路径:
ui

#!/bin/sh 
exe="test" #发布的程序名称 

des="/home/flyer/QtProject/build-test-Desktop-Release/ReleaseTest" #执行文件的路径 

deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') 
cp $deplist $des  

说明:exe :要发布的程序名称 des:指定so库文件复制的路径 spa


5. 编写.sh文档 并将它放在与步骤4同一目录下(.sh文件命名必须与可执行文件名字同样例:可执行文件名 test, .sh 文件名为 test.sh)
文档

.sh文件代码以下:
编译

#!/bin/sh 
class

appname=`basename $0 | sed s,\.sh$,,`  
test

dirname=`dirname $0` 
awk

tmp="${dirname#?}"   
sed


if [ "${dirname%$tmp}" != "/" ]; then 
终端

dirname=$PWD/$dirname 

fi 

LD_LIBRARY_PATH=$dirname 

export LD_LIBRARY_PATH 

$dirname/$appname "$@"  


6. 执行这个.sh文件:

需更给这两新编写的sh文件添加改权限:

chmod +x loadlib.sh

chmod +x test.sh

执行sh

./loadlib.sh

./test.sh

Ok!大功告成,将这个文件复制到其余电脑上就能够运行了。