使用cmake生成项目时,Eclipse索引器正确的c ++ 11语法突出显示

use*_*078 11 c++ mingw eclipse-cdt cmake c++11

我知道您可以使用此处描述的GXX_EXPERIMENTAL hack启用正确的语法突出显示: Eclipse CDT索引器不知道C++ 11容器

但我认为,在使用cmake生成项目时,根本不需要触摸项目设置.

所以.有更简单的解决方案吗?

use*_*078 22

答案很简单.

eclipse cdt生成器在解析符号时忽略add_definitions(...)添加的定义.相反,它使用CMAKE_CXX_COMPILER_ARG1.所以你要做的就是:在调用cmake时添加-DCMAKE_CXX_COMPILER_ARG1 = -std = c ++ 11

从命令行生成项目文件:

cmake ../../src -G"Eclipse CDT4 - MinGW Makefiles" -DCMAKE_ECLIPSE_VERSION=4.2 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_ARG1=-std=c++11
Run Code Online (Sandbox Code Playgroud)

从cmake gui生成项目:

- Select source and build directory.
- now BEFORE hitting configure or generate. Press "Add Entry" and add a new entry. Name:CMAKE_CXX_COMPILER_ARG1 Type:STRING Value:-std=c++11
- press Generate and create the Eclipse project
Run Code Online (Sandbox Code Playgroud)

在点击配置或第一次生成之前,先设置CMAKE_CXX_COMPILER_ARG1非常重要!

而已.将使用正确的符号生成项目.索引器,语法突出显示和自动完成应该按预期工作,而无需手动更改任何项目设置.