将Qt导入现有的Xcode项目

时间:2018-03-25 00:24:44

标签: c++ xcode qt

我在MacOS 10.13.3上,使用Xcode 9作为我的IDE,并尝试在我的Xcode项目中包含Qt 5.10。我已经使用Homebrew安装了Qt(带有文档和示例),并在QtCreator中运行了许多。到目前为止,一切都运作良好。

我的Xcode项目是一个广泛而复杂的项目,其开发已经活跃了几年,因此切换到QtCreator或更改项目结构不是一种选择。我真的需要将Qt添加到我现有的Xcode项目中,鉴于Qt是一个软件开发框架,IMHO应该是很自然的事情。但是我还没有完成那个。好处是,在这个过程中,我一直在学习Qt及其生态系统。我现在知道如何使用qmake,如何在QtCreator中设置和成功编译项目以及如何使用qmake从QtCreator创建Xcode项目。正如我所说,我已经运行了许多Qt示例,并且阅读了几乎所有关于此主题的文档,博客和SO帖子。令我惊讶的是,我没有在网上找到直接解决这个问题的方法。

到目前为止,我已经在我的Xcode环境中包含QtCore.framework,QtWidgets.framework和QtGui.framework,使用正确的搜索路径配置Xcode(Qt找到其文件和框架)并在代码中包含正确的Qt头。但是,在构建目标时,我会遇到一系列无意义的编译错误。

基本上 - 如果我的理解是正确的 - 我不能只导入我需要的Qt组件和框架,并在Xcode中设置正确的路径,就像我对任何其他框架一样。 Qt'具有'使用MOC和UIC的预处理步骤,使其与其他工具区别开来。所以我检查了qmake的输出,并且构建系统产生了两个文件 - qt_makeqmake.mak和qt_preprocess.mak,我认为它们负责代码生成步骤。基本上这就是我不知道如何翻译成我的Xcode环境。

如果我的方法不正确,请随时告诉我。 我愿意接受任何建议或建议。 我真的很想将Qt集成到我的项目中,因为Qt是一个如此强大而完整的框架。我希望有人能够提供帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

1 /除了设置Qt库和头文件的正确路径之外,你需要在你自己的Qt类中调用moc(元对象编译器),它包含Q_OBJECT宏。 (基本上你使用信号/插槽系统的所有课程。)

MOC http://doc.qt.io/qt-5/moc.html

必须在编译项目之前完成此步骤,并且必须编译和链接结果(cpp生成的moc文件)。

现在我不是XCode和MacOS开发方面的专家,但是您确实可以在构建过程中添加自定义步骤来实现这一目标

2 /对于UIC文件:按照近似的解释here(Preetam的答案,而不是经过验证的答案)获取.cpp和.h文件,您也必须包含在项目中。

希望这个答案有助于指出你的方向。

这篇帖子更详细地解释了我解释的内容: https://fmilicchio.bitbucket.io/2013/01/xcode-and-qt4-and-qt5/?