我使用MacOS10.13.3,使用Xcode 9作为我的IDE,并试图将Qt5.10包含在我的Xcode项目中。我已经用Homebrew安装了Qt(带有文档和示例),并在QtCreator中运行了其中的许多。到目前为止,一切都运行良好。
我的Xcode项目是一个广泛而复杂的项目,它的开发已经活跃了几年,所以切换到QtCreator或改变我的项目结构是不可能的。我真的需要将Qt添加到我现有的Xcode项目中,考虑到Qt是一个软件开发框架,这应该是一件很自然的事情。但是我还没有能够完成这一点。好的一面是,在这个过程中,我对Qt和它的生态系统有了相当多的了解。我现在知道了如何使用Qmake,如何在QtCreator中设置并成功编译一个项目,以及如何使用Qmake从QtCreator创建一个Xcode项目。正如我所说,我已经运行了许多Qt示例,阅读了几乎每一个文档。我可以在博客和其他帖子中找到关于这个主题的文章。令我惊讶的是,我还没有在网络上找到这个问题的直接解决方案。
到目前为止,我已经在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条答案
按热度按时间dced5bon1#
1/除了设置Qt库和头文件的正确路径,这是从你所说的已经完成的,你需要调用你自己的Qt类上的moc(元对象编译器),它包括Q_OBJECT宏。(基本上你所做的每个类都使用信号/插槽系统)。
MOChttp://doc.qt.io/qt-5/moc.html
此步骤必须在编译项目之前完成,并且必须编译和链接结果(cpp生成的moc文件)。
现在我不是XCode和MacOS开发方面的Maven,但可以肯定的是,您有办法在构建过程中添加一个自定义步骤来实现这一点
2/对于UIC文件:大致按照here(Preetam的答案,而不是经过验证的答案)的解释来获取一个. cpp和一个. h文件,您也必须将其包含在项目中。
希望这个答案能帮你找到正确的方向。
这里有一个帖子解释了更详细的我解释:https://fmilicchio.bitbucket.io/2013/01/xcode-and-qt4-and-qt5/?