【发布时间】:2012-07-25 13:25:48
【问题描述】:
我正在开发一个使用 cmake 的基于 Qt 的项目。我生成的所有moc文件都命名为*.moc,但我有一些文件,它们生成的moc文件的名称为moc_*.cpp,而不是*.moc。为什么会发生这种情况以及如何修复这些文件。
编辑:
我想说这些类是从 QObject 继承的,并且具有 Q_OBJECT 和 Q_DECLARE_PUBLIC 宏,除非它们有 .moc,否则它们不会与我一起编译。
我必须在我的 .cpp 文件中包含 .moc 文件。
- 让我发疯的事情是我有一个相同的类(与我的类相同的实现)生成一个 .moc 但我的类生成 moc_*.cpp。
【问题讨论】:
-
您的文件属于那些名为
*.moc的moc 文件,它们是否由*.h和*.cpp组成?*.moc文件(不是moc_*.cpp文件),它们是放在构建目录还是源目录中? -
只是为了在我的 cmakelist 文件中进行解释,我添加了 .cpp 文件,它使 .h 和 .cpp 编译良好,在我的 .cpp 中,我只包含了没有 .h 的 .moc 文件,moc_ *.cpp 在生成 .moc 的同一构建目录中生成。
标签: qt qt4 cmake qobject metaobject