想象一下以下源文件:
src/StdAfx.h
src/moresrc/MyFile.cpp
在MyFile.cpp
中,我需要包含预编译的头文件StdAfx.h。
如果我这样做:
#include "../StdAfx.h"
然后我会得到编译器错误:
warning C4627: '#include "../stdafx.h"': skipped when looking for precompiled header use
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
所以这不起作用。如果我这样做
#include "StdAfx.h"
然后编译正确,但我在Visual Studio 2013中突出显示的恼人错误如下所示:
所以,就像我说的,这个编译,但它很烦人。
我如何包括" StdAfx.h"没有下划线,但它会编译?
答案 0 :(得分:5)
您可以将$(ProjectDir)
(项目根目录)添加到项目选项中的目录列表中(C ++ - > General - > Additional Include目录)。然后,您将能够在包含中指定相对于项目根目录的路径。例如,如果您有utils/a.h
并希望在foo/bar/b.h
中使用它,则可以写#include "utils/a.h"
而不是#include "../../utils/a.h"
。如果您在项目根目录中有stdafx.h
,则可以仅使用#include "stdafx.h"
包含它。