包含stdafx.h的最佳方法,当它是1个目录时?

时间:2015-01-15 18:19:32

标签: c++ visual-studio stdafx.h

想象一下以下源文件:

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中突出显示的恼人错误如下所示:

error highlighting

所以,就像我说的,这个编译,但它很烦人。

我如何包括" StdAfx.h"没有下划线,但它会编译?

1 个答案:

答案 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"包含它。