【问题标题】:Eclipse CDT: Symbol 'cout', 'map', 'vector', 'size_t', etc could not be resolvedEclipse CDT:无法解析符号“cout”、“map”、“vector”、“size_t”等
【发布时间】:2012-09-15 02:16:40
【问题描述】:

有很多关于此的帖子,我已经尝试应用对其他人有用但仍不适合我的解决方案。

首先,我在 Linux 下开发的 c++ 项目一切正常,使用 Eclipse Indigo、gcc-4.7.1、cx11 激活和 Gentoo Linux。我的项目使用自制的静态库。我对一些模板类声明做了一些修改。然后,我的库中出现了一些意想不到的“无法解决”。

我所做的是重建库的索引,清理项目并重建它。它编译得很好,就像在修改之前和重建索引之前已经习惯一样,但是“无法解决”仍然存在。

好的,我至少尝试看看我的主要项目是否构建。库中有一个未解析的名称。所以我重建了主项目索引,在这里,所有标准关键字都会在各处都带有“无法解析”的下划线,并且无法编译,因为它会找到数千个未解析的名称。

我尝试清理和重建,在项目属性中添加许多包含路径:

-I/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.1/plugin/include -I/usr/lib64/gcc/x86_64-pc-linux-gnu/4.7.1/include/g++-v4/algorithm -I/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.1/include -I/usr/include -I/usr/include/linux -I/usr/local/include

这并没有改变。

'index/Search for unresolved features' 发现:

算法、cassert、cmath、cstdlib、fstream、iostream、map、set、 sstream、字符串、元组、实用程序

我尝试明确添加算法包含路径。但这并没有改变什么。

在我的 .cpp 开头,我有一个 using namespace std;。如果我在例如set 之前添加std::,它不会改变任何内容。

std:: 之后的自动补全不建议例如set

当然,我尝试关闭/重新打开 Eclipse,但没有更多成功。

有什么线索吗?

【问题讨论】:

标签: c++ linux eclipse-cdt include-path


【解决方案1】:

.metadata 已损坏。我只是用备份替换它。

不过,问题的根源仍然未知。由于大多数.metadata 文件都是二进制文件,因此我无法进一步调查此问题。

【讨论】:

  • 如果我没有备份怎么办?
  • 我认为你应该从头开始构建一个新的工作区并在那里导入你的项目。
猜你喜欢
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2013-10-27
  • 2015-11-07
相关资源
最近更新 更多