当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴
可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行。
比较幸运的是,Qt为我们提供了macdeployqt工具,借助于此,在OS X上发布Qt写的程序几乎是所有平台中最简单的。
注:我电脑配置了Qt的bin环境,所以可以直接使用macdeployqt
如果没配置,可以用绝对路径去找。
macdeployqt在我电脑上的绝对路径是:/Applications/Qt5.4.1/5.4/clang_64/bin/macdeployqt
1.发布widgets程序
1.1:这个比较方便。选择Release模式,编译
1.2:运行macdeployqt
对于我的工程,命令是:
macdeployqt /Users/Jason/Desktop/build-untitled-Desktop_5_4_0_64bit-Release/untitled.app -dmg
然后回车,就打包好了。
之后我们会发现,app目录下多了一个dmg文件
此dmg文件,里面的app就是我们发布的app了。把dmg拷贝给别人,别人就可以直接使用了。
注:如果直接拷贝app文件给别人,别人是无法直接运行的,会有权限问题(要用chmod给可执行文件加上x权限才可以运行)。
而压缩过(zip或者dmg)后,拷贝给别人,别人是可以直接运行,没有权限问题。
注:-dmg的意思就是在拷贝好库后,生成一个dmg文件,可以不加这个参数。
2.发布quick2程序
这个相对麻烦一点
2.1:然后,Release模式,编译
2.2:打开终端,先切换编译的目标目录下
对于我的工程,命令是:
cd /Users/Jason/Desktop/build-untitled-Desktop_5_4_0_64bit-Release
2.3:运行macdeployqt
对于我的工程,命令是:
macdeployqt untitled.app -qmldir=../untitled -dmg
然后回车,就打包好了。
注:和widgets发布程序不同,untitled.app 这个名字,要直接输入,不要写 ./untitled.app 或者是其他的 绝对/相对 路径,不然打包出来的文件无法使用!!会报错!!!
注2:-qmldir=../untitled 的意思就是说在 ../untitled 目录下有qml文件,让macdeployqt去分析它们,把要用的库找过来。
参考:http://blog.csdn.net/wsj18808050/article/details/44223065