错误,Symbol'vector'无法parsing

我在linux中使用eclipse来开发一个c + +应用程序,我得到这个编辑器注释错误“符号”vector“无法解决”从下面的代码行

std::vector<unsigned char> buffer; 

我觉得有些库缺失或path没有设置。 我明确下载了STL,但没用。 我需要在我的linux上重新安装GCC吗?

在Eclipse中,右键单击项目名称…选择索引…重建。

我遇到过同样的问题。 我相信问题来自如何更新std :: autocompletion。 Eclipse应该从路径和符号中得到这个,但它可能是越野车。 升级gcc(因此,g ++)后,我必须清理所有的Eclipse设置,因为你在Linux下,它在你的home文件夹〜/ .eclipse /下。

从而,

1)清理后重启Eclipse〜/ .eclipse /。

2)检查路径和符号(右键单击项目>常规>路径和符号)包括所有升级后的gcc和c ++ include目录(向量应该位于./gcc/version/include/c++/version/下)

3)重建索引。

4)创建一个* .cpp文件,其中包括错误显示的* .h。 这将迫使Eclipse回溯* .h的依赖关系。

5)根据需要重建索引和/或重新启动几次,现在我可以看到在std :: autocompletion结尾的向量。

在这里输入图像说明 (见图)

希望能帮助到你!

您需要在程序中包含STL向量定义。 放:

 #include <vector> 

在你的文件的顶部,它应该工作。

另请参见相关问题: Eclipse CDT:Symbol'cout'无法解析

对于我来说,问题是在#include <vector>某处有#include <bits/c++config> ,它的include路径不是#include <vector>

即:/ /usr/include/c++/4.6/x86_64-linux-gnu

 #include<vector> 

应该包含在顶部。

 #include <vector> 

此外,std :: vector是模板类型,所以你必须像使用它

 std::vector<char> buffer; 

我觉得有些库缺失或路径没有设置。

是的,这听起来像一个链接器错误。 Linkers处理符号。

我明确下载了STL,但没用。

希望你的意思是libstdc ++,GNU的C ++标准库的实现,你可能不应该这样做。 你的工具链带有正确的stdlib实现。

我需要在我的linux上重新安装GCC吗?

大概是明智的。 让这个安装处理标准库。

另外,如果你正在玩你的编译命令行,请记住调用g++ 而不是 gcc ; g++在C ++运行时和stdlib实现中自动链接,而gcc是为C

创建一个*.cpp文件,其中包含错误显示的*.h 。 这将迫使Eclipse回溯*.h依赖关系。
正在为我工​​作…

添加#include <vector>使用namespace std; 解决了我的问题

我知道这个问题已经解决了,但是钢铁似乎出现了,Google的搜索结果就是这个页面。

使用Eclipse Neon for Linux我使用Quick Fix解决了这个问题:

  • 右键单击编辑器中的“矢量”
  • 那么“快速修复”

很可能你的设置中缺少一些特定于系统的包含目录,这使得索引器无法正确解析iostream,从而导致错误。 在项目的上下文菜单中选择Index -> Search未解析的包含,将会给你一个未解析的包含列表,你可以在/usr/include搜索,并在项目属性中添加包含目录到C ++包含路径和符号。

在我的系统上,我必须添加/usr/include/c++/4.6/x86_64-linux-gnu bits/c++config.h来解决和更多的目录。

不要忘记在添加包含目录后重建索引(索引 – >重建)。