Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VS2013中的MOC文件生成_C++_Qt_Visual Studio 2013_Compiler Errors_Moc - Fatal编程技术网

C++ VS2013中的MOC文件生成

C++ VS2013中的MOC文件生成,c++,qt,visual-studio-2013,compiler-errors,moc,C++,Qt,Visual Studio 2013,Compiler Errors,Moc,我有一个从.pro文件生成的项目。我无法编译它,因为没有生成MOC文件 Q_对象用于要MOCed的类的标题中 #pragma once用于要MOCed的类的标题中 我将详细内容放到detailed中,我可以看到在正确的类上调用了moc。然后,出现以下错误:标准输入(0):注意:未找到相关类。没有生成输出。 最后,编译器无法链接moc文件,生成失败: 8> moc_myClass.cpp 8>c1xx : fatal error C1083: Cannot open source

我有一个从.pro文件生成的项目。我无法编译它,因为没有生成MOC文件

  • Q_对象
    用于要MOCed的类的标题中
  • #pragma once
    用于要MOCed的类的标题中
我将详细内容放到detailed中,我可以看到在正确的类上调用了moc。然后,出现以下错误:
标准输入(0):注意:未找到相关类。没有生成输出。

最后,编译器无法链接moc文件,生成失败:

8>  moc_myClass.cpp
8>c1xx : fatal error C1083: Cannot open source file: 
'D:\Things\\L_build\Stuff\moc\moc_myClass.cpp': No such file or directory

有什么线索吗?

我通过以下两个步骤解决问题: 1.删除Q_对象并重新生成
2.添加Q_对象并再次重建

我通过以下两个步骤解决问题: 1.删除Q_对象并重新生成
2.添加Q_对象并再次重建

头文件中是否有任何“非常规”预处理器命令,Q_对象宏是否位于正确位置?(与一些示例文件相比)这些类最终是否派生自
QObject
?从
QObject
派生的至少一个类中是否存在
Q\u对象
宏?moc必须满足这两个条件才能产生输出。这个问题现在有点离题了,因为没有显示重现这个问题的代码。“Q_对象用于要MOCed的类的头中”它应该用于从
QObject
派生的每个类的声明内部,而不仅仅是头中的某个地方
Q_对象
扩展到
staticMetaObject
成员声明。因此,它只在类声明内部有意义,否则将被moc忽略。Q_对象宏不是问题所在。我有一个非常类似的项目,它编译得很好,具有相同的Q_对象定义。我无法找出导致编译失败的两个项目之间的区别头文件中是否有任何“非常规”预处理器命令,Q_OBJECT宏是否位于正确的位置?(与一些示例文件相比)这些类最终是否派生自
QObject
?从
QObject
派生的至少一个类中是否存在
Q\u对象
宏?moc必须满足这两个条件才能产生输出。这个问题现在有点离题了,因为没有显示重现这个问题的代码。“Q_对象用于要MOCed的类的头中”它应该用于从
QObject
派生的每个类的声明内部,而不仅仅是头中的某个地方
Q_对象
扩展到
staticMetaObject
成员声明。因此,它只在类声明内部有意义,否则将被moc忽略。Q_对象宏不是问题所在。我有一个非常类似的项目,它编译得很好,具有相同的Q_对象定义。我无法找出两个项目之间的差异,这导致编译失败,以供将来参考:可能还需要删除Visual Studio中“生成的文件”下的
moc_XYZ
文件,然后清理并重建。对于将来的参考:可能还需要删除“生成的文件”下的
moc_XYZ
文件在Visual Studio中,然后清理并重建。