Eclipse IDE中的C ++错误“nullptr未在此作用域中声明”
我正在运行Eclipse Helios,并且安装了g ++ – 4.6。 希望我没有错,g ++ 4.6实现了C ++ 11的function。 我创build了一个使用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]
其实它昨天一直在修build。 今天我从这里得到这些东西。 请帮我解决这个问题。
根据C ++ 11的GCC页面 :
要启用C ++ 0x支持,请将命令行参数-std = c ++ 0x添加到您的g ++命令行中。 或者,要启用除C ++ 0x扩展外的GNU扩展,请在您的g ++命令行中添加-std = gnu ++ 0x。 GCC 4.7和更高版本支持-std = c ++ 11和-std = gnu ++ 11。
你用-std=gnu++0x
编译了吗?
终于find了做什么。 在Project Properties – > C / C ++ Build – > Settings – > GCC C ++ Compiler – > Miscellaneous下添加-std = c ++ 0x编译器参数。 它现在工作!
但是,如何为所有C ++项目默认添加此标志? 任何人?
这是一个实际的编译器错误或代码分析错误? 有时代码分析可能有点粗略,并报告无效的错误。
要closures项目的代码分析,右键单击项目资源pipe理器中的项目,单击属性,然后进入C / C ++常规选项卡,然后select代码分析。 然后点击“使用项目设置”,并禁用那些你不想要的。
另外,你确定你正在编译C ++ 11编译器吗?
转到设置 – >编译器…并将标志添加到“有g + +遵循即将到来的C ++ 0x ISO C ++语言标准[std = c ++ 0x]
您使用的是g ++ 4.6版本,您必须调用flag -std = c ++ 0x进行编译
g ++ -std = c ++ 0x * .cpp -o输出
在项目属性 – > C / C ++编译 – >设置 – > GCC C ++编译器 – >杂项下,在“-c -fmessage-length = 0”之后添加“,-std = c ++ 0x”。 不要忘了添加逗号“,”作为分隔符。