AUTOMOC 是 CMake 的一个功能,它会在构建时自动处理 Qt 的元对象信息。当使用 AUTOMOC 时,CMake 会在 C++ 源文件中查找 Q_OBJECT 宏,并将其替换为生成的 Meta Object 代码。这些代码会被存储在名为 moc_*.cpp 的文件中并编译成目标文件。
而 mocs_compilation.cpp 是这些 moc_ 文件的总和,它用来整合所有的元对象信息。AUTOMOC 会将所有通过 Q_OBJECT 宏声明的类对应的 moc_*.cpp 文件自动添加至 mocs_compilation.cpp 文件中。这是由 CMake 的 AUTOMOC_MOC_OPTIONS 变量控制的。例如:
set(CMAKE_AUTOMOC_MOC_OPTIONS "--include-all")
这会包含在所有与 Q_OBJECT 宏相关联的头文件中编写的所有内容,包括头文件、C++ 文件和 Qt 元对象信息。mocs_compilation.cpp 中的内容也会随之更新。
需要注意的是,只有启用了 AUTOMOC 才会自动添加文件到 mocs_compilation.cpp 中。
上一篇:AutoML自然语言UI不显示提取的文本以进行注释。
下一篇:AutoModelForCausalLMWithValueHead与AutoModelForCausalLM之间的实现(和工作)差异是什么?