Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2
下面是c++ 11代码的一个例子:
auto text = std::unique_ptr<char[]>(new char[len]);
Eclipse编辑器抱怨:
Function 'unique_ptr' could not be resolved
Makefile编译工作正常。如何让Eclipse停止抱怨这类错误?
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2
下面是c++ 11代码的一个例子:
auto text = std::unique_ptr<char[]>(new char[len]);
Eclipse编辑器抱怨:
Function 'unique_ptr' could not be resolved
Makefile编译工作正常。如何让Eclipse停止抱怨这类错误?
当前回答
无论是hack版本还是更干净的版本都不能用于Indigo。黑客被忽略,所需的配置选项丢失。没有明显的原因,构建在不能工作后开始工作,并且没有提供任何有用的原因。至少从命令行,我得到了可重复的结果。
其他回答
Eclipse CDT 4.4 Luna和4.5 Mars的说明
首先,在创建项目之前,配置Eclipse语法解析器:
窗口->首选项-> C/ c++ ->构建->设置->发现-> CDT GCC内置编译器设置
在标题为“命令获取编译器规格”的文本框中添加-std=c++11
现在你可以创建项目,配置取决于你创建的项目类型:
对于创建为:File -> New -> project -> C/ c++ -> c++ project
右键单击创建的项目并打开
属性-> C/ c++构建->设置->工具设置-> GCC c++编译器->方言
将-std=c++11放入标题为“其他方言标志”的文本框中,或从“语言标准”下拉菜单中选择“ISO c++11”。
对于CMake项目
生成eclipse项目文件(在项目内部)
mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..
然后将生成的目录作为标准eclipse项目导入eclipse。右键单击项目并打开
属性-> C/ c++通用->预处理器包括路径,Marcos等->提供程序
启用CDT GCC内置编译器设置,并将其移动到贡献路径入口容器之上(这很重要)
最后常用步骤
重新编译,重新生成Project ->C/ c++索引并重新启动Eclipse。
对于最新的(Juno) eclipse cdt,以下对我有效,不需要对自己声明__GXX_EXPERIMENTAL_CXX0X__。这适用于CDT索引器和编译器的参数:
“您的项目名称”->右键单击->属性:
C/ c++通用->预处理器包括路径,宏等->切换到名为“提供商”的选项卡:
对于“配置”,选择“发布”(然后选择“调试”) 关闭所有提供程序,选择“CDT GCC内置编译器设置” 取消勾选“项目间共享设置条目(全局提供者)” 在"Command to get compiler specs:" add "-std=c++11"不带引号(也可以使用引号) 点击应用并关闭选项 重新构建索引
现在所有c++11相关的东西都应该被索引器正确地解析了。
Win7 x64,最新的官方eclipse与CDT 来自sourceforge上mingwbuilds项目的Mingw-w64 GCC 4.7.2
我在Eclipse论坛上找到了这篇文章,只需要按照这些步骤,它就适合我了。我在Windows上使用Cygwin设置的Eclipse Indigo 20110615-0604。
Make a new C++ project Default options for everything Once created, right-click the project and go to "Properties" C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags. Put -std=c++0x (or for newer compiler version -std=c++11 at the end . ... instead of GCC C++ Compiler I have also Cygwin compiler C/C++ General -> Paths and Symbols -> Symbols -> GNU C++. Click "Add..." and paste __GXX_EXPERIMENTAL_CXX0X__ (ensure to append and prepend two underscores) into "Name" and leave "Value" blank. Hit Apply, do whatever it asks you to do, then hit OK.
现在在Eclipse FAQ/ c++ 11 Features中也有关于这方面的描述。
Eclipse设置
右键单击项目,选择“属性” C/ c++ Build -> Settings -> Tool Settings -> GCC c++ Compiler -> Miscellaneous -> Other Flags。将-lm放在其他标志文本框的末尾,然后确定。
无论是hack版本还是更干净的版本都不能用于Indigo。黑客被忽略,所需的配置选项丢失。没有明显的原因,构建在不能工作后开始工作,并且没有提供任何有用的原因。至少从命令行,我得到了可重复的结果。