【问题标题】:Eclipse CDT: Type std::string could not be resolvedEclipse CDT:类型 std::string 无法解析
【发布时间】:2015-03-02 21:32:25
【问题描述】:

我一直在寻找解决这个问题的方法,但找不到真正有效的方法。我已经尝试了在 stackoverflow(和其他地方)的其他问题中可以找到的所有解决方案,但似乎都没有。

在开始之前,我运行的是 Ubuntu 12.04、Eclipse 3.7.2,并安装了 g++ 4.6.3。

当我尝试使用任何 std 包含时,我收到一条错误消息,指出无法解析该类型。例如,这是我的一些代码:

#ifndef UTILITY_H_
#define UTILITY_H_

#include <string.h>

class Utility {
public:
    static std::string test() // <- Error at this line
    {
        return "";
    }
};


#endif /* UTILITY_H_ */

在指示的行,我收到一条错误消息Type 'std::string' could not be resolved。请注意,包含语句被解析得很好,但该包含文件中的类型却不是。对于#include &lt;sstream&gt;,我得到了同样的错误,大概还有我自己没有写的任何其他内容。

我已经试过了:

  • 确保我有正确的工具链和包含路径,以及切换到另一个工具链,应用更改,然后重新应用旧工具链。
  • 多次重启 eclipse 和我的电脑。
  • #include &lt;string&gt;#include &lt;string.h&gt;,两者都不起作用。不过,我已经能够展开我的包含文件夹以找到我期望的文件。

下面是我所看到的图片,如果有帮助的话:

编辑:好的,我明白了,#include &lt;string.h&gt; 并不是我真正想要的,但正如我上面所说,#include &lt;string&gt; 不会产生新的结果。

编辑:我显然已经解决了这个问题。我怎么不知道,但看我的回答

【问题讨论】:

  • 包含路径中有哪些文件夹?
  • 首先,正确的包含是&lt;string&gt;,而不是&lt;string.h&gt;,所以请擦洗&lt;string.h&gt;这个想法。
  • 可能,Eclipse 和/或插件有错误? Eclipse 不是编译器。
  • @AndreyDerevyanko 文件夹显示在图片中,除非您在谈论其他内容。从我在尝试解决此问题时阅读和看到的其他内容来看,这些似乎是正确的包含文件夹

标签: c++ eclipse


【解决方案1】:

我不确定为什么会这样或者我可以做些什么,但我只是运行了这个项目,看看会发生什么。似乎已经解决了错误,因为一旦我运行它们就消失了。也许错误消息有点错误,并且是最初无法解决包含问题时遗留下来的。

【讨论】:

  • 幸运的是,仍然没有适合我的解决方案。除了你的尝试,我还重新构建了项目索引。
  • 最后,迁移到 Eclipse Neon 解决了这个问题。
【解决方案2】:

Eclipse 有不同的构建配置(调试/发布)。索引器默认使用调试配置(至少在我的情况下)。更改: 项目 |属性 | C/C++ 通用 |索引器 |为索引器构建配置 |发布 | [申请] | [好的]。 也许你必须开始索引: 项目 | C/C++ 索引 |重建

注意:当然,必须为发布配置正确设置所有路径,正如该主题的许多其他答案中所建议的那样。但是如果没有这个改变,所有其他的改变都是无用的。

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2013-09-19
    • 2015-11-07
    相关资源
    最近更新 更多