Qt 在MAC 上打包成 APP
主要介绍 在打包中 遇到的问题,以及解决方法,
1>
采用Qt 自带工具 macdeployqt 具体路径根据你的安装路径(/Users/zhuomeng/Documents/Qt/5.4/clang_64/bin/macdeployqt )
macdeployqt app名称
2>
执行完后,进入Frameworks目录 (PCTOOL.app/Contents/Frameworks) 这里就是 你app 运行 所依赖环境了(不一定全是)
如果你的app 没有调用 第三方库的话.那么这里 打包就算完成了.如果调用了第三库.那就继续看了.
3>
进入 PCTOOL.app/Contents/MacOS/ 目录 里面有一个最终的执行 app ,
如图: 运行OTOOL -L xxx(app 名称)
你会看到,有的路径有@executale_path 有的路径没有 是以绝对路路径存在的. 有@的意味着 所需要的库 已经成功打进app 中了,
相反 以绝对路径存在的 库是没有打进去的. 运行的时候 会在 你 系统环境下 查找这些库. 如果版本 外发, 客户的系统环境下 没有这些库.那就运行不起来.(你可以回到 步骤2 查看Frameworks 目录, 这些库在Frameworks 目录 下 是不存在的)
4> 下面就是 如何将 第三方库 加载到 app 中了
咱们 就拿 /usr/lib/libSystem.B.dylib 来 做示范:
如图所示:
将 /usr/lib/libSystem.B.dylib 复制放到app Frameworks 目录下.
在用 install_name_tool -change old_name(老的绝对路径) new_name (新的路径 就是在Frameworks 目录下) app (执行文件)
5> 以上操作,就是 MAC 打包的步骤. 如有不对,qq 联系.会更新改正
微信: yangsenhehe
觉得对您有帮助,可扫二维码打赏博主.博主的每一份努力,离不开大家的支持!
如若不太了解 mac app 的结构:请参考 如下链接:
https://www.cnblogs.com/E7868A/archive/2012/12/02/2798225.html