【问题标题】:Eclipse complains method c_str could not be resolvedEclipse 抱怨方法 c_str 无法解决
【发布时间】:2014-08-14 01:17:55
【问题描述】:

我的程序如何编译成功,但 Eclipse 显示“语义错误”,我该如何摆脱这些错误?

我收到的错误消息如下 Method 'c_str' could not be resolved(这也适用于字符串的比较和大小)

这里是一个例子:

std::string someotherstring = "test";
std::string name = someotherstring.c_str();

这里的问题是,它还会产生似乎都不正确的后续错误,我的软件按预期编译和运行,甚至使用“c_str()”返回来处理消息。这似乎只是 Eclipse 中的显示问题。

我已经搜索了几个小时,尝试使用自定义索引器,但由于某种原因它不会消失。也许其他人有一个好主意在这里做什么,因为谷歌对这个特定问题一无所知。 (我什至尝试使用不同的 C++11 标准标志,因为我认为它可能会产生影响)

【问题讨论】:

  • 这听起来像是 eclipse 问题而不是 C++ 问题?
  • @djechlin:如果您建议 C++ 标签不相关(不确定是否相关),我不同意。在使用 C++ 时,这是 eclipse 的问题。使用 Java 和 eclipse 的人可能不会遇到同样的问题。
  • @BenjaminLindley C++ 标签是相关的;但应该更清楚的是,这是一个 Eclipse 问题。我必须阅读这个问题几次才能确定;在到达问题主体之前,这一点应该很清楚。所以我编辑了标题。
  • 您是否加入了std::string?编译器是否设置为使用 C++(g++ 不是 gcc)?
  • 我已经包含了 这应该绰绰有余吧?如果我错了纠正我。如果您需要更多信息,请告诉我,因为我已经尽我所能尝试了一切。

标签: c++ eclipse c++11 g++4.8


【解决方案1】:

我遇到了同样的问题。只需运行索引-> 重建即可解决。您可以通过右键单击项目主文件夹来找到它。 干杯

【讨论】:

  • 感谢这对我有帮助!
【解决方案2】:

如果您使用 mingw 和 C++11 构建项目,则不能使用默认方言选项 -std=c++0x。

点击 'GCC C++ Compiler' 并在 Command: 文本框中,在 g++ 后面输入 -std=gnu++0x

【讨论】:

  • 这是 3 年前问的 ;) 你可能晚了一点
  • 我刚刚在最新的 mingw 上遇到了与 Eclipse CDT Kepler 完全相同的问题,因此对于任何前来寻找的人来说,这仍然是一个适用的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2021-01-16
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多