1、windows下Qt打包
windows下Qt的可执行文件打包简单的来说就是利用Qt自带依赖的打包工具windeployqt进行打包,该工具存在Qt安装目录下,执行命令为:windeployqt name.exe
打包依赖文件可参考如下链接中1-7步,后面的步骤是打包依赖文件为安装包的过程:
Qt程序打包发布,含第三方库,详细教程。_清香可口柑的博客-CSDN博客_qt程序打包
打包可执行文件为安装包可参考链接:
NSIS打包工具用法介绍与NSIS相关软件下载_夜雨听萧瑟的博客-CSDN博客_nsis打包教程
2、linux下Qt依赖文件打包,编写桌面双击运行程序sh脚本
(1)使用QtCreator创建Qt的demo工程,选择release模式,生成可执行文件untitled1如下:
(2)将可执行文件untitled1拷贝到打包文件路径packDir下,如下:
(3)利用ldd 命令将执行文件依赖文件打包到文件中,编写的脚本如下:
#!/bin/bash
#S1打包的文件路径,$2可执行文件路径
#package.sh打包脚本位于打包文件上一级目录, eg:bash package.sh $PWD/packDirName untitled1
#$2"_lib_detail".txt 文件保存依赖文件详细情况
PACKAGE_Dir=$1
EXE_Name=$1/$2
dependlib_arr=($(ldd $EXE_Name | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
ldd $EXE_Name | grep -o "/.*" | grep -o "/.*/[^[:space:]]*">$2"_lib_detail".txt
num=0
for varlib in ${dependlib_arr[*]}
do
cp "$varlib" $PACKAGE_Dir
#echo $varlib
let num+=1
done
echo "$2 of the dependency lib num is ${num}"
echo "Check the $2"_lib_detail".txt for details"
#ldd $EXE_Name输出依赖库
#grep -o "/.*" 只显示匹配的内容
#grep -o "/.*/[^[:space:]]*" 提取不包含空格的内容
打包脚本位于打包文件packDir上一层,如下:
(4)运行打包脚本
以上运行结果表示可执行文件依赖库文件数目25,依赖文件名详情记录于untitled1_lib_detail.txt。
打包结果如需:
上面打包依赖脚本参考于:Linux下的QT程序的打包、运行、和关闭程序教程整理_linux qt_做一个坚强的女汉子的博客-CSDN博客
(5)在桌面编写运行程序脚本文件run.sh,如下:
注意脚本文件属性需设置为可执行属性,命令为$chmod +x run.sh,如下:
双击脚本run.sh即可运行程序,如下: