在Eclipse IDE中,C ++错误'nullptr未在此范围中声明'

时间:2012-04-05 17:45:53

标签: c++ g++ eclipse-cdt

我正在运行Eclipse Helios,我安装了g ++ - 4.6。希望g ++ 4.6实现C ++ 11功能并不错。我创建了一个使用nullptr和auto关键字的C ++项目。构建会出现以下错误: -

../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope

../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]

实际上直到昨天才建好。我今天无处可去。请帮我解决这个问题。

7 个答案:

答案 0 :(得分:51)

根据GCC page for C++11

要启用C ++ 0x支持,请将命令行参数-std = c ++ 0x添加到g ++命令行。或者,要在C ++ 0x扩展之外启用GNU扩展,请将-std = gnu ++ 0x添加到g ++命令行。 GCC 4.7及更高版本支持-std = c ++ 11和-std = gnu ++ 11。

您是否使用-std=gnu++0x编译?

答案 1 :(得分:21)

终于找到了该怎么做。在Project Properties - >下添加了-std = c ++ 0x编译器参数。 C / C ++ Build - >设置 - > GCC C ++编译器 - >杂。它现在有效!

但是如何为所有C ++项目默认添加此标志?任何人

答案 2 :(得分:4)

这是实际的编译器错误还是代码分析错误?有时代码分析可能有点粗略,并报告无效错误。

要关闭项目的代码分析,请在Project Explorer中右键单击项目,单击Properties,然后转到C / C ++ General选项卡,再转到Code Analysis。然后单击“使用项目设置”并禁用您不希望的那些。

另外,您确定要使用C ++ 11编译器进行编译吗?

答案 3 :(得分:3)

您正在使用g ++ 4.6版本,您必须调用标志-std = c ++ 0x来编译

  

g ++ -std = c ++ 0x * .cpp -o output

答案 4 :(得分:3)

转到设置 - >编译器... 并添加标志“让g ++遵循即将到来的C ++ 0x ISO C ++语言标准[std = c ++ 0x]

答案 5 :(得分:0)

我在项目属性 - >下的“-c -fmessage-length = 0”之后添加“,-std = c ++ 0x”。 C / C ++ Build - >设置 - > GCC C ++编译器 - >杂。别忘了添加逗号“,”作为分隔符。

答案 6 :(得分:0)

尝试使用不同版本的gcc为我工作 - 在我的情况下为gcc 4.9。