Представьте себе следующие исходные файлы:
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» без подчеркивания, но чтобы он компилировался?
Можете добавить $(ProjectDir)
(корневой каталог проекта) в список каталогов в опциях проекта (C ++ -> General -> Additional Включить каталоги). После этого вы сможете указать пути относительно корня проекта во включениях. Например, если у вас есть utils/a.h
и хочу использовать его из foo/bar/b.h
ты можешь написать #include "utils/a.h"
вместо #include "../../utils/a.h"
, И если у вас есть stdafx.h
в корне проекта вы можете включить его просто #include "stdafx.h"
,