C++ 预编译头智能感知错误
我在正在处理的静态库项目中启用了预编译头。环顾其他StackOverflow问题,似乎要包含stdafx.h的关键位置是在.cpp文件中,而不是在.h文件中 但是,当我在Visual Studio中执行此操作时,会出现IntelliSense错误: 1 IntelliSense:PCH警告:标头停止不能在宏或if块中。未生成IntelliSense PCH文件\公共\核心\几何\椭球体.h 9 即使存在此IntelliSense错误,静态库项目也会成功编译 .h文件由以下类声明组成:C++ 预编译头智能感知错误,c++,visual-studio,precompiled-headers,visual-studio-2013,C++,Visual Studio,Precompiled Headers,Visual Studio 2013,我在正在处理的静态库项目中启用了预编译头。环顾其他StackOverflow问题,似乎要包含stdafx.h的关键位置是在.cpp文件中,而不是在.h文件中 但是,当我在Visual Studio中执行此操作时,会出现IntelliSense错误: 1 IntelliSense:PCH警告:标头停止不能在宏或if块中。未生成IntelliSense PCH文件\公共\核心\几何\椭球体.h 9 即使存在此IntelliSense错误,静态库项目也会成功编译 .h文件由以下类声明组成: #ifnd
#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有什么含义?您必须在文件开头添加一次pragma Answare在这里:
macro-or-if-block-visual-c-2010-exp这并不能完全解决您的问题,但在VisualStudio中,我将转到project properties->c/c++->Advanced并将我的PCH作为强制包含,然后再也不用担心它了!