【问题标题】:Eclipse method could not be resolved for vector of vectorsEclipse 方法无法解析向量的向量
【发布时间】:2012-12-02 21:50:14
【问题描述】:

每当我尝试通过索引运算符访问向量元素的方法或字段时,例如bar[0].push_back(0) on vector< vector< int > > 我从 eclipse 中得到一个“方法无法解析”的语义错误。

使用g++ -Wallclang++ 可以很好地编译代码 - 这是一个简短的示例。

#include <set>
#include <vector>
#include <iostream>

int main()
{
    std::vector< std::vector < int > > bar(10);
    bar[0].push_back(0);    // eclipse "method 'push_back' could not be resolved
    (bar[0]).push_back(1);  // eclipse "method 'push_back' could not be resolved
    bar[0][0] = 0;      // This and all else is just fine for eclipse
    std::vector<int> &bar0 = bar[0];
    bar0.push_back(2);
    std::vector<int> *pbar0 = &bar[0];
    pbar0->push_back(3);
    return 0;
}

std::vector&lt;std::pair&lt;int, int&gt; &gt;::iterator 尝试访问 iter-&gt;first 时遇到类似问题。 (字段 'first 无法解析)。

它是一个 C/C++ 项目,.cpp 文件,在 Eclipse 4.2.1 中,没有未解决的包含。

我完全迷路了 - 我怎样才能摆脱这个日食错误?

更新:我也尝试过使用最新的可用版本:Juno Service Release 1。结果相同。

Update2:我实际上注意到,对于一个全新的项目,错误不会发生,所以我应该能够最终确定是什么设置导致了这个错误。到目前为止,我无法识别任何东西,没有定义(非内置)符号,路径看起来也不错。

【问题讨论】:

  • 简单的答案:摆脱 Eclipse! :-)
  • Eclipse 4.2.1 可以很好地处理代码示例。您的“路径和符号”配置正确吗?即使编译器可能正在寻找正确的位置,Eclipse 本身也可能指向任何位置。另外:不要听杰瑞的!要坚强! ;)

标签: c++ eclipse


【解决方案1】:

从头开始重新创建项目解决了这个问题。看来该项目是由以前版本的 eclipse 创建的,可能会导致问题。由于 .project 和 .cproject 的大量更改,无法确定具体原因。

【讨论】:

  • 以后可以通过右键项目->选择索引->重建来重建索引。此操作可能因操作系统和 eclipse 版本而异。
  • 重建索引在这种情况下没有帮助。一段时间后问题再次出现:(
【解决方案2】:

通过项目->清理并重建,此问题已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 2013-09-19
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多