Qt构建序列(rcc - > uic - > moc - >预处理器 - >普通编译器)?

时间:2016-06-18 16:29:29

标签: c++ qt build-process

我想知道在QT项目中调用这些构建工具的顺序:
UIC - MOC - RCC - 预处理器 - 普通的c ++编译器(例如Gcc)

1 个答案:

答案 0 :(得分:2)

第一步:

UIC处理* .ui文件并生成* .h输出 MOC处理 .h文件(带有Q_OBJECT宏的文件)并生成moc _ .cpp文件 RCC处理* .rc文件并生成* .cpp文件

第二步:

所有你写的 .h / .cpp文件和所有生成的 .h / .cpp文件都被处理为" normal"您的"正常"的源代码编译器。

要获得完整的答案,您应该知道qMake会在这些文件之间创建依赖关系。 例如,如果" foo.h"文件包含" Q_OBJECT"宏观,MOC将生产" moc_foo.cpp"文件。 但是qMake会添加一个依赖:" moc_foo.cpp"将被标记为依赖于" foo.h"。 所以,如果你修改" foo.h"文件,您的编译器知道应该在此文件上重新运行MOC以生成新版本的" moc_foo.cpp"