Nic*_*ick 208 c++ eclipse eclipse-cdt c++11
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2
这是一段C++ 11代码的示例:
auto text = std::unique_ptr<char[]>(new char[len]);
Run Code Online (Sandbox Code Playgroud)
Eclipse编辑器抱怨:
Function 'unique_ptr' could not be resolved
Run Code Online (Sandbox Code Playgroud)
Makefile编译工作正常.如何让Eclipse停止抱怨这些错误?
Car*_*ner 221
我在Eclipse论坛中发现了这篇文章,只是遵循了这些步骤,它对我有用.我在Windows上使用Eclipse Indigo 20110615-0604并使用Cygwin设置.
-std=c++0x
(或者最新的编译器版本-std=c++11
....而不是GCC C++编译器我也有Cygwin编译器__GXX_EXPERIMENTAL_CXX0X__
(确保将两个下划线附加并添加前缀)到"名称"中,并将"值"留空.现在还在Eclipse FAQ中对此进行了描述:Eclipse FAQ/C++ 11 Features.
Tri*_*tos 148
首先,在创建项目之前,配置Eclipse语法分析器:
Window
- > Preferences
- > C/C++
- > Build
- > Settings
- > Discovery
- >CDT GCC Build-in Compiler Settings
在标题为Command to get compiler specs
append 的文本框中-std=c++11
现在您可以创建项目,配置取决于您创建的项目类型:
对于创建的项目:文件 - >新建 - >项目 - > C/C++ - > C++项目
右键单击已创建的项目并打开
Properties
- > C/C++ Build
- > Settings
- > Tool Settings
- > GCC C++ Compiler
- >Dialect
放入-std=c++11
标题文本框other dialect flags
或ISO C++11
从Language standard
下拉列表中选择.
对于CMake项目
生成eclipse项目文件(在项目中)
mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..
Run Code Online (Sandbox Code Playgroud)
然后将生成的目录导入eclipse作为标准的eclipse项目.右键单击项目并打开
Properties
- > C/C++ General
- > Preprocessor Include Paths, Marcos etc.
- >Providers
启用CDT GCC Build-in Compiler Settings
并移动它高于Contributed PathEntry Containers
(这很重要)
最后的共同步骤
重新编译,重新生成Project
- > C/C++ Index
并重新启动Eclipse.
Joh*_*erg 112
2016年更新:
从gcc 6(更改)开始,默认的C++方言是C++ 14.这意味着除非你明确需要一个比那个更新或更旧的方言,否则你不再需要对eclipse做任何事了.
这个社区维基部分包含了Trismegistos的答案;
1.在创建项目之前,配置Eclipse语法分析器:
窗口 - >首选项 - > C/C++ - >构建 - >设置 - >发现 - > CDT GCC内置编译器设置
在标题为命令以获取编译器规格追加的文本框中-std=c++14
2.创建项目,配置取决于您创建的项目类型:
对于创建的项目:文件 - >新建 - >项目 - > C/C++ - > C++项目
右键单击已创建的项目并打开
属性 - > C/C++构建 - >设置 - >工具设置 - > GCC C++编译器 - >方言
放入-std=c++14
标题为其他方言标志的文本框或从语言标准下拉列表中选择ISO C++ 11.
对于最新版本 :(目前Juno和Kepler Luna):
在较新版本的Juno下,设置位于Project properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> tab Providers -> CDT GCC Builtin Compiler Settings ()
.
旧版本2012/2013:
在C/C++ Build下(在项目设置下),找到Preprocessor Include Path并转到Providers选项卡.取消选择除CDT GCC内置编译器设置之外的所有内容.然后取消标记共享设置条目.... 将选项-std = c ++ 11添加到名为Command的文本框中以获取编译器规范.
转到路径和符号.在"符号"下,单击" 恢复默认值",然后单击" 应用".
笔记:
Eclipse对于应用程序非常挑剔,每次离开设置选项卡时都需要执行此操作.
[自我推销]:我根据上述内容编写了自己更详细的说明. http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds
感谢用户Nobody
访问/sf/answers/954455631/
And*_*eas 20
对于最新的(Juno)eclipse cdt,以下工作对我来说,不需要__GXX_EXPERIMENTAL_CXX0X__
对自己声明.这适用于CDT索引器和编译器的参数:
"您的项目名称" - >右键单击 - >属性:
C/C++ General - >预处理器包括路径,宏等 - >切换到名为"Providers"的选项卡:
对于"配置"选择"发布"(以及之后的"调试")
关闭所有提供程序,只需选择"CDT GCC内置编译器设置"
取消选中"在项目之间共享设置条目(全局提供商)"
在"获取编译器规范的命令:"中添加"-std = c ++ 11",不带引号(也可以使用引号)
点击应用并关闭选项
重建索引
现在所有与c ++ 11相关的东西都应该由索引器正确解析.
win7 x64,来自sourceforge的mingwbuilds项目的最新官方日食与cdt mingw-w64 gcc 4.7.2
Jer*_*ome 15
我在Eclipse Juno上遇到了同样的问题.这些步骤解决了这个问题:
Project -> Properties -> C/C++ General -> Path and Symbols -> Tab [Symbols]
.小智 12
对于Eclipse CDT Kepler,对我来说摆脱std::thread
未解决的符号是:
转到首选项 - > C/C++ - >构建 - >设置
选择"发现"选项卡
选择CDT GCC内置编译器设置[共享]
将-std = c ++ 11添加到"获取编译器规范的命令:"字段,例如:
$ {COMMAND} -E -P -v -dD -std = c ++ 11 $ {INPUTS}
添加-std=c++11
到项目Properties/C/C++ Build->Settings->Tool Settings->GCC C++ Compiler->Miscellaneous->Other
Flags对于Kepler来说还不够,但对于像Helios这样的旧版本来说已经足够了.
我还不能发表评论,所以我正在写自己的答案:
它与__GXX_EXPERIMENTAL_CXX0X__
Eclipse Juno和CDT 8.x 有关并且它有效.
这个答案的某些部分已经在其他答案中有所涉及,但我希望它是连贯的.
为了能够使用stdc ++ 11进行构建,必须为编译器添加特定的标志.您可以通过项目属性执行此操作.修改项目属性RMB
和Project properties
或ALT + ENTER
.然后是C/C++ Build - > Settings - > Tool Settings - > GCC C++ Compiler - > Miscellaneous - > Other Flags.将-std = c ++ 11放在行尾,对于GCC,它看起来像:-c -fmessage-length=0 -std=c++11
.通过添加-stdc ++ 11标志编译器(GCC)将__GXX_EXPERIMENTAL_CXX0X__
自行声明.
此时,您可以使用C++ 11的所有优点来构建项目.
问题是Eclipse有自己的解析器来检查错误 - 这就是为什么你仍然在Eclipse编辑器中得到所有令人讨厌的错误,同时你可以在没有任何错误的情况下构建和运行项目.有一种方法可以通过__GXX_EXPERIMENTAL_CXX0X__
为项目明确声明标志来解决这个问题,可以这样做(就像Carsten Greiner所说的那样):C/C++ General - > Paths and Symbols - > Symbols - > GNU C++.单击"添加..."并过去__GXX_EXPERIMENTAL_CXX0X__
(确保将两个下划线附加和前置)到"名称"中,并将"值"留空.现在是我想在第一个答案的评论中提到的额外部分,请转到:C/C++ General - >预处理器包含路径宏等 - >提供者,然后选择CDT Managed Build Setting Entries
然后单击APPLY并返回到GNU下的Entries选项卡C++现在应该有CDT托管构建设置条目检查内部是否有定义__GXX_EXPERIMENTAL_CXX0X__
- > APPLY和rebuild index你应该在这一点上没事.
归档时间: |
|
查看次数: |
219792 次 |
最近记录: |