错误"无法解析标识符"在Netbeans

时间:2015-06-06 18:33:03

标签: c++ c++11 netbeans netbeans-8

我的程序编译得很好,但Netbeans告诉我"无法解析标识符to_string。"

我在" Netbeans 7.2 shows "Unable to resolve identifier" , although build is successful"我设置了" C ++标准"到" C ++ 11"在代码帮助选项中。

到目前为止,这是解决此问题的唯一功能。然而它也是我使用的第一个C ++ 11特性,这使我相信它与Netbeans有关,而不是理解我正在使用C ++ 11,尽管我在代码辅助菜单中明确指定了它。 / p>

最小例子:

#include <string>
int main() {
    std::to_string(1);
}

编辑:使用nullptr

时会出现同样的问题

EDIT2:我突然意识到提到我不使用生成的Makefile,但是SCons可能很重要。

7 个答案:

答案 0 :(得分:15)

我知道这个问题已经有七个月了,但是因为它是谷歌搜索的第二个结果,我会告诉我想出的答案。对于Netbeans至少。转到您的项目属性,确保您拥有&#34; C编译器&#34; - &gt;&#34; C标准&#34;设置为C11,以及您的&#34; C ++编译器&#34; - &gt;&#34; C ++标准&#34;设置为C ++ 11。你必须设置BOTH,否则仍会出现错误错误!

答案 1 :(得分:2)

自动完成,有时甚至语法突出显示总是与C ++有关。使用C ++和C ++ 11进行深入研究的越多,Eclipse和Netbeans就会开始用红色波浪线强调所有内容。我的一些(正确和完美编译)程序是一个巨大的红色波浪线。我建议您完全禁用错误标记,并保持自动完成,但在许多情况下,它只是无法正常工作,您必须充分利用它。

答案 2 :(得分:1)

我有同样的情况。这是因为我使用.c文件而不是.cpp

答案 3 :(得分:1)

这将解决问题:

  1. 右键单击“ 项目”。
  2. 选择“ 代码协助”。
  3. 清理C / C ++缓存。
  4. 重新启动IDE。

答案 4 :(得分:0)

对于Netbeans 8.2(在Linux上),只有以下内容适用于我:工具 - &gt;选项 - &gt;代码帮助 - &gt;宏定义: 改变:__cplusplus=199711L 到:__cplusplus=201402L 对于C ++ 14 或__cplusplus=201103L for C ++ 11

答案 5 :(得分:0)

我做了以上所有事情,但对我来说诀窍是认识到Makefile有g ++而不是g ++ -std = c ++ 11。

答案 6 :(得分:0)

要在最新的netbeans 8.2或9版本中解决与c ++ 17相关的“无法解析标识符”,可能需要将宏定义__cplusplus = 201703L设置为默认的C ++ 14标准宏定义,无法解决那些意外的问题错误消息出现在编辑器中。