将编译器开关添加到 Eclipse CDT 内置编译器设置生成?



我有一个基于 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标志,因此此预定义宏的实际值201703L201402L

显然,GCC Built-In Compiler Settings中的预定义宏列表是在没有-std=c++17标志的情况下生成的。

是否可以设置用于在CDT GCC Built-in Compiler Settings中生成预定义宏列表的编译器标志并触发它们重新生成? 如果是这样,在哪里/如何配置?

在同一首选项页面上,如果切换到"Providers"选项卡(而不是"Entries"(,然后选择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(控制项目是使用工作区范围的设置还是自己的设置。

最新更新