Eclipse NEON CDT 无法识别 c++11/14 header 内容
Eclipse NEON CDT doesn't recognize c++11/14 header content
Eclipse NEON.1 4.6.1 与 CDT 9.1.0,g++ 5.4.0
它无法识别所有 c++11/14 功能。它确实可以识别 auto
和 nullptr
等关键字。但是,它无法识别来自 headers 的内容,这取决于所定义的正确符号。
例如,当包含 <memory>
时,它会识别像 std::auto_ptr
这样的旧符号,而不识别像 std::shared_ptr
这样的旧符号。这些较新的功能在 #if __cplusplus >= 201103L
.
内
我可以通过设置方言选项让它在标准 eclipse 项目中工作,但我需要它在没有方言设置的基于 autotools 的项目中工作。
我使用 AM_CXXFLAGS automake 变量对程序进行了实际编译。为了让它为索引器工作,我在 eclipse 中进入了 Project properties > C/C++ General > Preprocessor Include Paths, Macros
然后到提供程序选项卡并为 CDT GCC Built-in 编译器设置的命令添加 -std=c++14 选项。我也将该提供商移到了列表的顶部。在条目选项卡上,您可以看到 __cplusplus 定义的实际值。在我添加 -std=c++14 开关之前,它远低于所需的 201103L,在我添加开关之后,它远高于要求。
找出问题所在。当我在命令中添加 -std=c++14
选项以在提供程序选项卡上获取编译器规范时,我在使用该配置时为 "Debug" 配置添加了它们。结果是索引器设置为始终使用 "Build" 配置。在我也为 "Build" 配置添加设置并重新索引后,错误消失了。
Eclipse NEON.1 4.6.1 与 CDT 9.1.0,g++ 5.4.0
它无法识别所有 c++11/14 功能。它确实可以识别 auto
和 nullptr
等关键字。但是,它无法识别来自 headers 的内容,这取决于所定义的正确符号。
例如,当包含 <memory>
时,它会识别像 std::auto_ptr
这样的旧符号,而不识别像 std::shared_ptr
这样的旧符号。这些较新的功能在 #if __cplusplus >= 201103L
.
我可以通过设置方言选项让它在标准 eclipse 项目中工作,但我需要它在没有方言设置的基于 autotools 的项目中工作。
我使用 AM_CXXFLAGS automake 变量对程序进行了实际编译。为了让它为索引器工作,我在 eclipse 中进入了 Project properties > C/C++ General > Preprocessor Include Paths, Macros
然后到提供程序选项卡并为 CDT GCC Built-in 编译器设置的命令添加 -std=c++14 选项。我也将该提供商移到了列表的顶部。在条目选项卡上,您可以看到 __cplusplus 定义的实际值。在我添加 -std=c++14 开关之前,它远低于所需的 201103L,在我添加开关之后,它远高于要求。
找出问题所在。当我在命令中添加 -std=c++14
选项以在提供程序选项卡上获取编译器规范时,我在使用该配置时为 "Debug" 配置添加了它们。结果是索引器设置为始终使用 "Build" 配置。在我也为 "Build" 配置添加设置并重新索引后,错误消失了。