Visual Studio 2010 C ++ Intellisense错误

Cem*_*ncu 3 intellisense visual-studio-2010 visual-c++

我在VS 2010中遇到一个奇怪的Intellisense错误。我没有运气就搜索了Internet。似乎没有其他人以前收到过此错误。

IntelliSense: PCH warning: header stop needs to be at global scope. 
An intellisense PCH file was not generated.
Run Code Online (Sandbox Code Playgroud)

随之而来的还有许多其他错误,因为它停止了索引编制。这发生在我添加的最近文件中。我的项目中有很多文件(278),最近的5-6个文件中发生了这种情况。可能是我做了不喜欢的事情,或者是有限制。

由于即使在文档中也找不到此错误,因此我想了解原因以及可能的解决方案。请注意,我尝试删除ipch文件夹和sdf文件,以使它们生成新的。错误被赋予文件的最后一行。我的代码大量使用模板。

编辑:
我注意到我的ipch文件夹大部分是空的。这可能意味着整个预编译头生成失败,而不是针对那些文件。尽管如此,智能感知仍然部分起作用,但不适用于那些文件。

Mic*_*urr 7

PCH 代表“预编译头” - 您需要确保正确配置了这些。

错误消息似乎是说配置为预编译头的“停止”的头是以嵌套方式包含的(即,其他一些头包含它)。默认情况下,解决方案将stdafx.h用作“停止”标头,习惯用法是stdafx.h将成为任何文件.cpp.c文件中包含的第一个标头。不要包含stdafx.h在任何其他标题中。

有关 Intellisense 如何工作以及如何对其进行故障排除的最佳信息来自Visual C++ 团队博客

一些可能有用的文章:

  • 我不熟悉 GCC 的预编译头支持是如何工作的。另一方面,您可以通过使用 `/FI` 选项(IDE 项目设置中的“高级/强制包含文件”)来解决在 100 个文件中添加 `#include` 的问题。 (3认同)

Gus*_*uez 5

当您忘记“;”时,将生成此错误。在类声明之后,例如:

#ifndef _MYCLASS_H
class MyClass {
...
public:
...
}

#endif <--- VS2010 report here the error PCH: warning...
Run Code Online (Sandbox Code Playgroud)

如果您输入“;” 在结束“}”之后,错误消失了。我并不是说这是唯一的原因,我只是说我发现缺少“;”的错误。在提到的地方。