Ошибка скомпилированных заголовков IntelliSense

У меня включены предварительно скомпилированные заголовки в проекте статической библиотеки, над которым я работаю. Оглядываясь на другие вопросы StackOverflow, кажется, что ключевое место для #include «stdafx.h» находится в файле .cpp, а не в файле .h.

Однако, когда я делаю это в Visual Studio, я получаю ошибку IntelliSense:

1 IntelliSense: предупреждение PCH: остановка заголовка не может быть в блоке макроса или #if. Файл IntelliSense PCH не был создан. …. \ Common \ Core \ Geometry \ Ellipsoid.h 9

Статический проект библиотеки делает успешно скомпилировать, даже с этой ошибкой IntelliSense.

Файл .h состоит из этого объявления класса:

#ifndef GEOMETRY_ELLIPSOID_H
#define GEOMETRY_ELLIPSOID_H

class Ellipsoid { // 'class' is underlined with a red line (error)
// ...
};

#endif // !GEOMETRY_ELLIPSOID_H

.Cpp определяет класс, объявленный в заголовке:

#include "Common\Core\stdafx.h"#include "Ellipsoid.h"
// ...

При включении stdafx.h в заголовок ошибка intelliSense исчезает. Это правильный способ использовать предварительно скомпилированные заголовки? Какие последствия есть в том, чтобы включить в заголовок stdafx.h?

1

Решение

Вы должны добавить #pragma один раз в начале файла
Ответ здесь: Предупреждение PCH: остановка заголовка не может быть в блоке макроса или #if — Visual C ++ 2010 Express SP1
макро-или-если-блок-зрительно-с-2010-ехр

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]