Eclipse NEON CDT无法识别c ++ 11/14标题内容

时间:2016-10-03 17:38:48

标签: c++11 eclipse-cdt autotools

Eclipse NEON.1 4.6.1 with CDT 9.1.0,g ++ 5.4.0

它无法识别所有c ++ 11/14功能。它确实识别autonullptr等关键字。然而,它不会识别来自标题的内容,这取决于正确定义的符号。

例如,当包含<memory>时,它会识别像std::auto_ptr这样的旧符号,而不是std::shared_ptr之类的符号。这些较新的功能在#if __cplusplus >= 201103L内。

我可以通过设置方言选项让它适用于标准的eclipse项目,但是我需要它来处理没有方言设置的基于autotools的项目。

我有使用AM_CXXFLAGS automake变量的程序的实际编译。为了让它为索引器工作,我在eclipse中使用了Project属性&gt; C / C ++一般&gt;预处理器包含路径,宏

然后到提供程序选项卡并为CDT GCC内置编译器设置的命令添加了-std = c ++ 14选项。我还将该提供程序移到了列表的顶部。在条目选项卡上,您可以看到__cplusplus定义的实际值。在我添加-std = c ++ 14开关之前,在我添加了开关之后它已经低于所需的201103L。

1 个答案:

答案 0 :(得分:2)

找出问题所在。当我在命令中添加-std=c++14选项以获取提供程序选项卡上的编译器规范时,我在“Debug”配置中添加了它们,因为我正在使用该配置。原来,索引器被设置为始终使用“Build”配置。在我为“构建”配置添加设置并重新编制索引之后,错误就消失了。