Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Visual Studio 2010 C++;智能感知错误_Visual Studio 2010_Visual C++_Intellisense - Fatal编程技术网

Visual studio 2010 Visual Studio 2010 C++;智能感知错误

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个文件也是如此。可能是我做了一些它不喜欢的事情,也可能是有限制的

我在VS2010中遇到了一个奇怪的智能感知错误。我在网上搜索时运气不好。似乎以前没有人犯过这个错误

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如何工作以及如何对其进行故障排除的最佳信息来自

以下几篇文章可能会有所帮助:


我最初的感觉是,这可能是一个文件编码问题,但无论如何,下面是我将如何解决它的方法

创建一个全新的解决方案,intellisense有效吗?如果没有,那么VS重新安装可能是正确的

如果intellisense在不同的解决方案中工作,那么有两种可能性:解决方案中的某些内容有问题,或者文件夹层次结构中的某些内容有问题(可能是权限问题?)

我会删除整个解决方案文件夹,并从源代码管理获取最新的解决方案

如果在那之后它仍然发生,并且你真的想找到原因,那么你可以从项目中删除一堆文件,看看intellisense现在是否工作,再删除一些。。。直到a)文件用完或b)找到导致错误的文件

如果a)然后制作一个全新的解决方案,并将您的文件和项目添加到其中。如果可行,请将新的解决方案/项目文件与旧的文件进行比较,看看有什么不同


如果是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%有效。