我有MyClass.cpp和MyClass.h文件。既然MyClass.cpp有#include "MyClass.h",我就把stdafx.h放在MyClass.h上。在编译过程中,我得到了错误:
在寻找预编译头时文件的意外结束。你忘记在你的消息来源中添加'#include‘stdafx.h’了吗?
为什么?如果MyClass.cpp包含MyClass.h,那么它应该包含MyClass.h的所有行,而这些行包含stdafx.h。
发布于 2014-08-22 16:10:26
如果将#include "stdafx.h"放在.h文件中并不重要。编译器不在乎。它希望将#include "stdafx.h"视为.cpp文件的第一行,除非您有“不使用预编译头”作为源文件的编译器选项。推理与预编译头有关。我真的不能给出一个技术性的解释,但简单地这样做会使生活更容易。
发布于 2014-08-22 16:10:39
如果您想要预编译MyClass.h,则情况正好相反。
MyClass.h不包括stdafx.hstdafx.h包括MyClass.hMyClass.cpp将stdafx.h作为第一个指令。为了代码清晰,它还可能包括MyClass.h。https://stackoverflow.com/questions/25451219
复制相似问题