让 QMake 生成正确的 .app

Posted

技术标签:

【中文标题】让 QMake 生成正确的 .app【英文标题】:Getting QMake to generate a proper .app 【发布时间】:2008-08-25 21:08:45 【问题描述】:

我有一个大型的现有 C++ 项目,涉及:

4 个应用程序 50 多个库 20 多个第三方库

该项目使用 QMake(奇趣科技 Qt 的一部分)在 Linux 上构建生产版本,但我一直在尝试在 MacOS 上构建它。

我可以使用 QMake 在 MacOS 上进行构建,但我无法生成最终的 .app。它需要收集所有第三方框架和动态库,所有项目的动态库,并确保应用程序找到它们。

我在网上阅读了有关使用 install_name_tool 的信息,但想知道是否有自动化流程。

(也许答案是使用 XCode,请参阅相关问题,但在构建 uic 和 moc 时会有问题)

谢谢

【问题讨论】:

【参考方案1】:

我相信这会对您有很大帮助:

deployqt

希望这会有所帮助!

【讨论】:

【参考方案2】:

我们在 Last.fm 也有同样的问题,我查看了 DeployQt,如果你有第三方库,它并没有多大用处。最后我写了一个 perl 脚本来生成一个 Makefile,你可以用它来生成一个 .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   

我敢肯定它还不是便携的,但如果其他人使用它会很好,看看是不是这样。

这基本上是此代码的第一个正式版本,所以请向我发送错误报告以及改进。谢谢。

【讨论】:

【参考方案3】:

我通过在 OS X 上静态构建我的 Qt 应用程序完全避开了这个问题。不过,这对你来说可能不实用。

【讨论】:

以上是关于让 QMake 生成正确的 .app的主要内容,如果未能解决你的问题,请参考以下文章

QMake:为 iOS App 指定自定义 Info.plist 文件

在 qmake 生成的 .vcxproj 中导入 .props 文件

从 dbus xml 生成文件时,如何告诉 qmake 包含标头?

使用 qmake 生成对 MS VS 有额外依赖关系的 makefile

由makefile 如何生成QT 的pro 文件

qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)