将编译器开关添加到 Eclipse CDT 内置编译器设置生成?
Adding compiler switch to Eclipse CDT Built-In Compiler Settings generation?
我有一个基于 Makefile 的 Eclipse CDT 项目,在 Project > Properties > C/C++ General > Preprocessor Include Paths, Macros etc. > GNU C++ > CDT GCC Built-in Compiler Settings > __cplusplus
下的值为 201402L
我的 Makefile 中设置了 -std=c++17
标志,所以这个预定义宏的实际值是 201703L
而不是 201402L
.
显然,GCC Built-In Compiler Settings
中的预定义宏列表是在没有 -std=c++17
标志的情况下生成的。
是否可以在 CDT GCC Built-in Compiler Settings
中设置用于生成预定义宏列表的编译器标志并触发它们重新生成?如果是where/how这是配置的吗?
在同一首选项页面上,如果您切换到 Providers
选项卡(而不是 Entries
)和 select CDT GCC Built-in Compiler Settings
提供商,则有一个 Command to get compiler specs
那里。您可以修改该命令,例如添加 -std=c++17
。在该页面上按 Apply
将自动触发提供商再次 运行 并更新预定义宏列表。
您还可以在 Window -> Preferences -> C/C++ -> Build -> Settings -> Discovery tab
中配置此工作区范围。 Use global provider shared between projects
复选框(就在 Command to get compiler specs
上方)控制项目是使用工作区范围的设置还是自己的设置。
我有一个基于 Makefile 的 Eclipse CDT 项目,在 Project > Properties > C/C++ General > Preprocessor Include Paths, Macros etc. > GNU C++ > CDT GCC Built-in Compiler Settings > __cplusplus
下的值为 201402L
我的 Makefile 中设置了 -std=c++17
标志,所以这个预定义宏的实际值是 201703L
而不是 201402L
.
显然,GCC Built-In Compiler Settings
中的预定义宏列表是在没有 -std=c++17
标志的情况下生成的。
是否可以在 CDT GCC Built-in Compiler Settings
中设置用于生成预定义宏列表的编译器标志并触发它们重新生成?如果是where/how这是配置的吗?
在同一首选项页面上,如果您切换到 Providers
选项卡(而不是 Entries
)和 select CDT GCC Built-in Compiler Settings
提供商,则有一个 Command to get compiler specs
那里。您可以修改该命令,例如添加 -std=c++17
。在该页面上按 Apply
将自动触发提供商再次 运行 并更新预定义宏列表。
您还可以在 Window -> Preferences -> C/C++ -> Build -> Settings -> Discovery tab
中配置此工作区范围。 Use global provider shared between projects
复选框(就在 Command to get compiler specs
上方)控制项目是使用工作区范围的设置还是自己的设置。