首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有完全识别c++11

没有完全识别c++11
EN

Stack Overflow用户
提问于 2015-09-18 01:15:24
回答 2查看 5.2K关注 0票数 5

首先,我知道启用-std=c++11支持的c++11标志以及放置它的位置。我将-std=c++11附加到Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags中,编译工作得很好。但是索引器不友好,例如,如果我想使用emplace函数std::map (c++11),它将找不到emplace函数。

代码语言:javascript
复制
#include <map>

int main() {
    std::map<int, int> data;
    data.emplace(5,5);

我还检查了以下相关问题:

更新:既然我已经玩过它,甚至不认识std::map类型,尽管编译很好,eclipse找到了所有的头.

  • 编译器Mingw64 GCC 5.2.0
  • 月食火星4.5
  • CDT 8.7
EN

回答 2

Stack Overflow用户

发布于 2015-09-18 01:57:51

月食火星比以前的版本有一点不同。

第一步获取上面链接的Enable C++11 in Eclipse CDT (Juno/Kepler/Luna) indexer中包含的突出显示工作的索引器错误。如果你已经做了这一切,我会被蓝精灵如果我知道你遇到了什么。到目前为止,火星还有点不稳定。

  1. 转到Project->properties->C/C++ General->预处理器包含路径。
  2. 单击“提供者”选项卡。
  3. 单击CDT GCC内置编译器设置MinGW。
  4. 单击右侧的“向上移动”按钮。
  5. 在“语言设置提供程序选项”下
    1. 单击“关闭项目间共享的使用全局提供者”
    2. 将-std=c++1y添加到命令行的末尾,以获得编译器规范。

顺便说一句,如果有人知道全局设置在哪里,所以我可以默认这种行为,请告诉我。

第2步使编译器工作。

  1. 转到Project->properties->C/C++ Build->Settings。
  2. 转到“工具设置”选项卡。
  3. 扩展GCC C++编译器
  4. 单击“方言”,从“语言标准”下拉菜单中选择要针对的C++标准。
票数 8
EN

Stack Overflow用户

发布于 2017-03-01 10:22:06

Eclipse通过索引器来理解窗口中的C++代码。这个索引器只不过是对带有某些编译选项的GCC C++编译器的调用。有时,您可能希望更改此索引器使用的编译器选项。

例如,我最近发现C++11容器和类(就像将来一样)没有被索引器解析,而是用红色的squiggles下划线。这是因为索引器使用的编译器选项没有-std=c++11。

若要更改索引器的编译器选项,请执行以下操作:

  1. 打开首选项并转到C/C++ ->构建->设置。
  2. 单击“发现”选项卡并选择CDT GCC内置编译器设置。
  3. 根据您的意愿修改下面显示的命令字符串。例如,这里我添加了-std=c++11。
  4. Eclipse将在保存后自动重新索引您的C++文件。但是,我发现这并没有消除未解决的项目。
  5. 我通过右键单击项目并选择索引->重建来手动重新编制索引。这起作用了!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32642375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档