windows下打包QT程序成安装包
来源:互联网 发布:经典知乎问答 编辑:程序博客网 时间:2024/04/30 00:52
总体思路:
第一步:用windeployqt.exe成生可执行程序 (参考:http://blog.csdn.net/liuyez123/article/details/50462637)
第二步:用QT installer framework 打包 (参考:http://www.tuicool.com/articles/zaq6Zf2 http://blog.csdn.net/sunshinwong/article/details/37764719)
具体步骤:
第一步: QTCreator 中release运行程序后关掉
第二步: QT installer framework 安装,配制环境变量(略)
第三步: 建立目录结构与文件(我以Joopic为根目录):Joopic/config/config.xml Joopic/packages/com.joopic.joopicplayer/data/
Joopic/packages/com.joopic.joopicplayer/meta/package.xml
package.xml 和 config.xml 文件内容格式请见后文
例:
rm -rf ReleaseInstaller32
mkdir ReleaseInstaller32
mkdir ReleaseInstaller32/config
mkdir ReleaseInstaller32/packages
mkdir ReleaseInstaller32/packages/com.joobot.joopic
mkdir ReleaseInstaller32/packages/com.joobot.joopic/data
mkdir ReleaseInstaller32/packages/com.joobot.joopic/meta
cp -Rv config.xml ReleaseInstaller32/config/
cp -Rv package.xml ReleaseInstaller32/packages/com.joobot.joopic/meta/
第四步:data目录下将 第一步生成的目录下的所有(执行文件)文件copy到data目录下 ,并将下一步windeployqt.exe拷贝不进的文件一起拷贝进来
例:
cp -Rv ../../build-JooPic-Desktop_Qt_5_8_0_MinGW_32bit-Release/release/Joopic.exe ReleaseInstaller32/packages/com.joobot.joopic/data
cp -Rv ../../3rdparty/openssl/rel_win_32_dll/bin/*.dll ReleaseInstaller32/packages/com.joobot.joopic/data
cd ReleaseInstaller32/packages/com.joobot.joopic/data/
cp -Rv E:/Qt/Qt5.8.0/vcredist/vcredist_msvc2015_x86.exe .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libgcc_s_dw2-1.dll .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libstdc++-6.dll .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libwinpthread-1.dll .
第五步:windeployqt.exe 拷贝链接库
例:E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/windeployqt.exe Joopic.exe
第六步: 运行:binarycreator.exe-cconfig\config.xml-ppackages JoopicPlayer.exe -v 打包
例:
binarycreator.exe -c config/config.xml -p packages JoopicInsaller.exe -v
mv JoopicInsaller.exe ../
config.xml:
<?xml version="1.0" encoding="UTF-8"?><Installer> <Name>Joopic Player</Name> <Version>0.0.1</Version> <Title>Joopic Player Installer</Title> <Publisher>Joopic soft</Publisher> <StartMenuDir>JoopicPlayer</StartMenuDir> <TargetDir>@rootDir@/Joopic</TargetDir></Installer>
package.xml:
<?xml version="1.0" encoding="UTF-8"?><Package> <DisplayName>Joopic Player</DisplayName> <Description>Joopic Player for play pics.</Description> <Version>0.0.1</Version> <ReleaseDate>2017-04-17</ReleaseDate> <Name>com.joopic.joopicplayer</Name></Package>
备忘:
# win下打包命令:
# 1.release编译运行
# 2.将release下/release/JoopicPlayer.exe拷到data目录下(非第一次时替换原先的)
# 3.在cmd中进入data目录下执行windeployqtproject.exe ,自动将连接库拷到data目录下
# 4.(初次建data目录时才做)再将其他第三方库拷到data目录下: ffmpeg的库(我程序用到ffmpeg),
# 和QT bin目录下的libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll(此三个库windeployqtproject没有拷))
# 5.cmd中JoopicPlayerInstaller目录下运行:binarycreator.exe -c config\config.xml -p packages JoopicPlayerInstaller.exe -v
# 这样在 JoopicPlayerInstaller目录下生成了JoopicPlayerInstaller.exe安装包
备忘2(完整角本,请根据自己需求改写):
echo "start..."
rm -rf ReleaseInstaller32
mkdir ReleaseInstaller32
mkdir ReleaseInstaller32/config
mkdir ReleaseInstaller32/packages
mkdir ReleaseInstaller32/packages/com.joobot.joopic
mkdir ReleaseInstaller32/packages/com.joobot.joopic/data
mkdir ReleaseInstaller32/packages/com.joobot.joopic/meta
cp -Rv config.xml ReleaseInstaller32/config/
cp -Rv package.xml ReleaseInstaller32/packages/com.joobot.joopic/meta/
cp -Rv ../../build-JooPic-Desktop_Qt_5_8_0_MinGW_32bit-Release/release/Joopic.exe ReleaseInstaller32/packages/com.joobot.joopic/data
cp -Rv ../../3rdparty/openssl/rel_win_32_dll/bin/*.dll ReleaseInstaller32/packages/com.joobot.joopic/data
cd ReleaseInstaller32/packages/com.joobot.joopic/data/
cp -Rv E:/Qt/Qt5.8.0/vcredist/vcredist_msvc2015_x86.exe .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libgcc_s_dw2-1.dll .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libstdc++-6.dll .
cp -Rv E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/libwinpthread-1.dll .
E:/Qt/Qt5.8.0/5.8/mingw53_32/bin/windeployqt.exe Joopic.exe
cd ../../..
pwd
#cd D:/QTWorkspace/JoobotPCv1.0/makepackage/win/ReleaseInstaller32
binarycreator.exe -c config/config.xml -p packages JoopicInsaller.exe -v
mv JoopicInsaller.exe ../
pwd
echo "finish."
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充:MAC OS X系统平台的发布:(参考:http://blog.csdn.net/liuyez123/article/details/50462637)
由于Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行。
比较幸运的是,Qt为我们提供了macdeployqt工具,借助于此,在OS X上发布Qt写的程序几乎是所有平台中最简单的。
注:我电脑配置了Qt的bin环境,所以可以直接使用macdeployqt,如果没配置,可以用绝对路径去找。
1.发布widgets程序
a) 这个比较方便。选择Release模式,编译
b) 运行macdeployqt
对于我的工程,命令是:
macdeployqt /Users/Ocean/Desktop/build-untitled-Desktop_5_5_1_64bit-Release/untitled.app -dmg
然后回车,就打包好了。之后我们会发现,app目录下多了一个dmg文件
此dmg文件,里面的app就是我们发布的app了。把dmg拷贝给别人,别人就可以直接使用了。
l 注:如果直接拷贝app文件给别人,别人是无法直接运行的,会有权限问题(要用chmod给可执行文件加上x权限才可以运行)。而压缩过(zip或者dmg)后,拷贝给别人,别人是可以直接运行,没有权限问题。
l 注:-dmg的意思就是在拷贝好库后,生成一个dmg文件,可以不加这个参数。
- windows下打包QT程序成安装包
- windows下打包QT程序成安装包2
- Linux下打包QT程序成安装包
- Windows应用程序打包成安装包
- win7平台下QT软件的打包与发布(部署与安装) 打包成安装包样式
- 将项目打包成安装包(Windows服务)
- C# vs2008 创建Windows服务程序,打包成安装文件
- C# vs2008 创建Windows服务程序,打包成安装文件
- C#打包成安装程序
- Windows 下 Qt 程序打包
- asp.net 打包成安装程序
- install4j 将jar打包成安装程序
- C#程序打包成安装项目详解
- 如何将程序员写出来的程序打包成安装包(最简单的)
- 如何将程序员写出来的程序打包成安装包(最简单的)
- 如何将程序员写出来的程序打包成安装包(最简单的)
- 如何使用visual studio将你的程序打包成安装包
- 将程序exe制作成安装包
- R语言经典实例 11章方差分析…
- 解决linux下tomcat8上传图片other用户无法通过Nginx查看的问题
- No Implicit Value for Evidence Parameter Error
- Maven经验分享(三)编译引入本地jar
- R语言经典实例 12-13章
- windows下打包QT程序成安装包
- R常用函数知识点
- Maven经验分享(四)执行ant脚本
- 百度贴吧“神来一句”功能分析
- R语言与网站分析 第7章分类指…
- R语言与网站分析 第8章样本分…
- Maven经验分享(五)Maven拷贝资源
- R导论中文版
- win32 编程之调试输出