我在Linux上使用Eclipse CDT Mars.2(和Neon RC)。我的发行版的默认C ++编译器是GCC 5.3.1,但对于我的一些工作,我使用的是GCC 4.9.3。我希望所有关于我的项目使用GCC 4.9.3:工具发现,C ++标准库,包含文件路径,索引器,预处理 - 所有这些。
正确的方法是什么?似乎Eclipse有拜占庭"提供商"和"工具链"配置,我不想进行设置,我以后无法撤消...
注意:
我确实尝试在某些预处理程序包含等提供程序设置中用${COMMAND}
替换/usr/bin/g++-4.9
,这确实导致发现4.9.3相关的包含文件,但我的索引器没有像那样,所有的std :: stuff都显示为红色且未解析。然后我试着寻找我设置用于索引的编译器版本的位置,但我找不到。
答案 0 :(得分:2)
有两种可能的答案,取决于你是否正在做"标准制作"或" Mangaged Make"。标准制作意味着您正在编写自己的Makefile并自行管理所有这些。 Managed Make意味着您让CDT创建Makefile并管理它们。
对于标准品,一切都由扫描仪发现的内容控制。扫描程序处理查找属于项目的所有系统包含文件,并将这些文件提供给索引器以解析符号,并允许诸如头文件导航之类的内容。
要更改使用的编译器,您需要将${COMMAND}
替换为您选择的编译器。您(作为用户)可以确保此命令与您在Makefile中使用的命令相匹配。
更改${COMMAND}
:
${COMMAND}
以获取编译器规范:到您想要的g ++可执行文件。这是一个帮助屏幕截图:
要查看此操作,以下是一些有和没有描述更改的屏幕截图。在我的机器上,我有/usr/bin/g++
版本5.3和/usr/bin/g++-4.7
版本4.7。
使用默认g ++
将g ++重写为版本4
上述问题是您需要在Makefile和构建设置之间协调 g ++ 。对此的一个解决方案是使用 C / C ++ Build Environment 设置将CXX
定义为要使用的编译器。在项目设置中设置CXX
环境变量(项目属性 - > C / C ++ Build - > 环境)或全局首选项(首选项 - > C / C ++ - > 构建 - > 环境)。
然后将${COMMAND}
替换为${CXX}
。
以下是演示我所描述内容的屏幕截图:
相反,如果您使用的是Managed Make,则需要覆盖各个工具的构建设置。然后,这些设置将输入标准制作所直接使用的预处理器包含路径,宏等设置。
要更改构建设置,您需要在几个地方覆盖用于编译器的命令,每种类型的工具一次。从项目属性开始 - > C / C ++ Build - > 设置然后编辑以下各项:
g++
gcc
g++
以下是演示的截图: