Linux下Qt的打包
- 新建一个文件夹,用于存放打包的文件
- 编译文件,在Qt中使用release的方式编译出可执行文件,将可执行文件拷贝进新建的文件夹中 (举例名称为demo)。
- 新建 pack.sh、demo.sh (这个脚本文件名必须和要发布的程序名字相同),并设置为可运行
sudo chmod +x pack.sh
sudo chmod +x demo.sh
向pack.sh文件里添加以下内容(按要求更改):
#!/bin/sh
exe="Server" #你需要发布的程序名称
des="/home/mrzhong/server" #创建文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
然后向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 "$@"
执行脚本./pack.sh
后可执行文件依赖的链接库将会拷贝到所在的目录,在其他主机里面使用和可执行文件同名的脚本文件(demo.sh)运行程序即可。最后将这个文件打包后拷贝到其他主机上即可运行。
Windows下Qt打包
- 新建一个文件夹,用于存放打包的文件
- 编译文件,在Qt中使用release的方式编译出可执行文件,将可执行文件拷贝进新建的文件夹中 (举例名称为hotelPlatformServer)。
- 任务栏搜索qt ,选择
Qt xxx for Desktop (xxx)
- 切换目录到新建的文件夹下
- 输入如下命令行:
windeployqt hotelPlatformServer.exe
敲击回车。将所需的库文件全都拷贝到exe程序的当前文件夹下。如果有其他的第三方库依赖的话,自己拷贝一份相关的dll库到该文件夹下。
- 此时,在当前目录下是可以点击运行exe程序的,将这个文件夹打包后拷贝到其他主机上也可运行。