这个程序以QWindows为例
一、在Qt中使用release的方式编译出可执行文件
二、将可执行文件单独放置到一个新的文件夹里(我将这个文件夹命名为test)
三、并且在这个新的文件夹里另外新建两个脚本文件,分别为pack.sh和QWindows.sh(这个文档QWindows.sh一定要跟程序名一模一样)
四、
1,在pack.sh中写入以下内容
#!/bin/sh
exe="QWindows" #你需要发布的程序名称
des="/home/may/project/test" #创建文件夹的全路径
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
2、在QWindows.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、打开终端进入文件夹目录,运行这个.sh文件:
赋予.sh权限:
chmod +x pack.sh
再执行这个命令之后即可完成打包
./pack.sh
6、可执行文件依赖的链接库将会拷贝到所在的目录,如图:
在其他主机(这个主机里面要有QT软件)里面使用和可执行文件同名的脚本文件(这里为QWindows.sh)运行程序即可。
如果拷贝到无Qt环境的主机上运行,还需注意ldd命令没有拷贝的环境库,也就是platforms文件夹及两个链接文件。查看这里【https://blog.csdn.net/lusanshui/article/details/84988017 】