Visual studio 2010 Visual Studio 2010 C++;智能感知错误
我在VS2010中遇到了一个奇怪的智能感知错误。我在网上搜索时运气不好。似乎以前没有人犯过这个错误Visual studio 2010 Visual Studio 2010 C++;智能感知错误,visual-studio-2010,visual-c++,intellisense,Visual Studio 2010,Visual C++,Intellisense,我在VS2010中遇到了一个奇怪的智能感知错误。我在网上搜索时运气不好。似乎以前没有人犯过这个错误 IntelliSense: PCH warning: header stop needs to be at global scope. An intellisense PCH file was not generated. 在停止索引时,会出现许多其他错误。这发生在我最近添加的文件上。我的项目(278)中有很多文件,最近的5-6个文件也是如此。可能是我做了一些它不喜欢的事情,也可能是有限制的
IntelliSense: PCH warning: header stop needs to be at global scope.
An intellisense PCH file was not generated.
在停止索引时,会出现许多其他错误。这发生在我最近添加的文件上。我的项目(278)中有很多文件,最近的5-6个文件也是如此。可能是我做了一些它不喜欢的事情,也可能是有限制的
因为我甚至在文档中也找不到这个错误,所以我想了解原因以及可能的解决方案。注意,我试图删除ipch文件夹和sdf文件,以使它们生成一个新文件。该错误将出现在文件的最后一行。我的代码大量使用模板
编辑:我注意到我的ipch文件夹大部分是空的。这可能意味着整个预编译头生成失败,而不是那些文件。尽管如此,intellisense仍能部分工作,但不适用于这些文件。PCH代表“预编译头”——您需要确保这些文件配置正确 错误消息似乎是说,配置为预编译头的“停止”的头正在以嵌套方式包含(即,其他一些头正在包含它)。默认情况下,解决方案将使用
stdafx.h
作为“停止”标题,习惯用法是stdafx.h
将是任何.cpp
或.c
文件中包含的第一个标题。不要在任何其他标题中包含stdafx.h
有关Intellisense如何工作以及如何对其进行故障排除的最佳信息来自
以下几篇文章可能会有所帮助:
如果是b),则重新添加文件并开始修剪,直到找到有问题的行。如果在类声明后忘记了“;”,则会生成此错误,例如:
#ifndef _MYCLASS_H
class MyClass {
...
public:
...
}
#endif <--- VS2010 report here the error PCH: warning...
\ifndef\u MYCLASS\u H
类MyClass{
...
公众:
...
}
#endif我使用VS 2008,这可能是不同之处,但对我来说,Intellisense数据库存储在NCB文件中。删除通常会修复我的Intellisense问题。他们用VS2010改变了整个系统。现在它依赖于预编译的头文件,并使用mssql数据库存储条目。通常ipch文件夹占用超过100mb,现在几乎是空的。这可能与您是否使用Visual Studio 2010 Professional(DreamSpark版本)SP1 Beta有关?那里提供的解决方案都不适合我。我的项目不使用pch,但intellisense使用它。它为它创建了文件夹,但它完全是空的。可能是我有一个递归包含。这值得调查。Pragmas保护获取编译错误,但intellisense可能会忽略它们。是否有方法获取有关intellisense的更多日志信息?就像它试图解析的文件列表一样。我已经更新了答案,添加了一些指向文章的指针,这些文章提供了一些可能对您有所帮助的IntelliSense详细信息。看起来打开预编译头可能会帮助您解决这个问题。我不熟悉GCC的预编译头支持是如何工作的。另一方面,您可以通过使用/FI
选项(“IDE项目设置中的高级/强制包含文件”)在100个文件中添加#include
。这会在与svn同步的两台不同计算机中产生相同的错误。所有其他项目都运作良好。我想你的暴力方法需要一些时间(278个文件,超过40k行代码)。至少我知道问题发生在最后几个文件之后。也许值得一试。我现在正在探索另一种选择。我已经安装了visualassistx。我禁用了智能感知。目前看来还可以。我可能会买它,只要我确信它100%有效。