Imagine the following source files:
src/StdAfx.h
src/moresrc/MyFile.cpp
In MyFile.cpp
, I need to include the precompiled header file StdAfx.h.
If I do this:
#include "../StdAfx.h"
then I will get the compiler error:
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?
So that doesn't work. If I do just
#include "StdAfx.h"
then that compiles correctly, but I get the annoying error highlighting in Visual Studio 2013 that looks like this:
So, like I said, this compiles, but it is annoying.
How can I include "StdAfx.h" without the underlining, but so that it will compile?
You can add $(ProjectDir)
(project root directory) to directories list in project options (C++ -> General -> Additional Include directories). Then you'll be able to specify paths relative to project root in includes. For instance if you have utils/a.h
and want to use it from foo/bar/b.h
you can write #include "utils/a.h"
instead of #include "../../utils/a.h"
. And if you have stdafx.h
in project root you can include it with just #include "stdafx.h"
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With