6

我在 Linux 上使用 Eclipse CDT Mars.2(和 Neon RC)。我的发行版的默认 C++ 编译器是 GCC 5.3.1,但对于我的一些工作,我使用 GCC 4.9.3。我希望我的项目的所有内容都使用 GCC 4.9.3:工具发现、C++ 标准库、包含文件路径、索引器、预处理——所有这些。

这样做的正确方法是什么?似乎 Eclipse 具有相当拜占庭式的“提供者”和“工具链”配置,我不想进行以后无法撤消的设置......

注意: 我确实尝试在某些 Preprocessor Includes 等提供程序设置中替换${COMMAND}/usr/bin/g++-4.9,这确实导致发现了与 4.9.3 相关的包含文件,但我的索引器不喜欢这样和所有 std::stuff显示为红色且未解决。然后我尝试寻找我设置用于索引的编译器版本的位置,但我找不到。

4

1 回答 1

4

有两种可能的答案,取决于您是在做“标准制作”还是“管理制作”。标准 Make 意味着您正在编写自己的 Makefile 并自己管理所有内容。Managed Make 意味着您让 CDT 创建 Makefile 并管理它们。

标准品牌

对于标准品牌,一切都由扫描仪发现的内容控制。扫描程序负责查找属于项目一部分的所有系统包含文件,并将这些文件输入索引器以解析符号,并允许诸如头文件导航之类的事情。

要更改使用的编译器,您需要替换${COMMAND}为您选择的编译器。由您(作为用户)来确保此命令与您在 Makefile 中使用的内容相匹配。

要更改${COMMAND}

  1. 打开项目属性(通过右键单击项目)
  2. 在树中选择C/C++ 常规->预处理器包括路径、宏等。
  3. 选择提供者选项卡
  4. 从列表中选择CDT GCC Built-in Compiler Settings
  5. ${COMMAND}in Command 替换为您想要的 g++ 可执行文件以获取编译器规格。

这是一个屏幕截图以提供帮助:

命令编辑

要查看实际情况,这里有一些带有和不带有所描述更改的屏幕截图。在我的机器上,我有/usr/bin/g++5.3 版和/usr/bin/g++-4.74.7 版。

使用默认 g++

g++5

将 g++ 覆盖到版本 4

g++4

使用环境管理

上面的问题是您需要在 Makefile 和构建设置之间协调g++ 。对此的一种解决方案是使用C/C++ 构建环境设置定义CXX为要使用的编译器。在项目设置( Project Properties -> C/C++ Build -> Environment)或全局首选项(Preferences -> C/C++ -> Build -> Environment )中设置CXX环境变量。

然后替换${COMMAND}${CXX}.

这是一个屏幕截图,演示了我所描述的内容:

环境

管理品牌

相反,如果您使用的是 Managed Make,则需要覆盖各个工具的构建设置。然后,这些设置会输入到Standard Make 直接使用的Preprocessor Include Paths、Macros 等设置中。

要更改构建设置,您需要在几个地方覆盖用于编译器的命令,每种工具一次。从Project Properties -> C/C++ Build -> Settings开始,然后编辑其中的每一个:

  • GCC C++ 编译器-> 通常设置为g++
  • GCC C 编译器-> 通常设置为gcc
  • GCC C++ 链接器-> 通常设置为g++

这是一个屏幕截图来演示:

管理制作屏幕截图

于 2016-07-06T09:26:16.410 回答