题
我有一个大型现有 C++ 项目,涉及:
- 4 个应用程序
- 50+ 图书馆
- 20+第三方库
该项目使用 QMake(Trolltech 的 Qt 的一部分)在 Linux 上构建生产版本,但我一直在尝试在 MacOS 上构建它。
我可以使用 QMake 在 MacOS 上构建,但我在生成最终的 .app 时遇到问题。它需要收集所有第三方框架和动态库、所有项目的动态库并确保应用程序找到它们。
我在网上阅读过有关使用 install_name_tool 的信息,但想知道是否有一个流程可以使其自动化。
(也许答案是使用 XCode,请参阅相关问题,但构建 uic 和 moc 时会出现问题)
谢谢
解决方案
其他提示
我们在 Last.fm 也有同样的问题,我查看了 DeployQt,如果你有第三方库,它就没有多大用处。最后,我编写了一个生成 Makefile 的 perl 脚本,您可以使用它来生成 .app 和/或 .dmg。
我上传到这里: http://www.methylblue.com/detritus/QMake.dmg/
要使用它,请将其添加到应用程序的 pro 文件中:
macx*:!macx-xcode:release {
system( QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg )
QMAKE_EXTRA_INCLUDES += Makefile.dmg
}
我确信它还不是全部可移植的,但如果其他人使用并看看是否如此,那就太好了。
这基本上是该代码的第一个正式版本,因此请向我发送错误报告以及改进。谢谢。
我通过在 OS X 上静态构建 Qt 应用程序完全回避了这个问题。但这对你来说可能不切实际。
不隶属于 StackOverflow