0

在 OS X 机器(Snow Leopard,如果重要的话)上,我正在尝试从 gcc 4.2.1 升级到 4.7.3。

我按照此处此处的说明进行操作,现在可以从命令行使用 -std=c++0x 或 std=c++11 编译代码。

但 Eclipse CDT 似乎仍在使用旧的 gcc 版本。我编辑了我的项目,使其具有 std=c++0x 作为编译器的杂项参数。然而,当我在 CDT 中进行构建时,我得到以下输出:

07:48:16 **** Build of configuration Debug for project 4.1 Valuation ****
make all 
Building file: ../src/BondModel.cpp
cc1plus: error: unrecognized command line option "-std=c++0x"
make: *** [src/BondModel.o] Error 1
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++0x -MMD -MP -MF"src/BondModel.d" -MT"src/BondModel.d" -o "src/BondModel.o" "../src/BondModel.cpp"

07:48:16 Build Finished (took 109ms)

如果我将该 g++ 行复制并粘贴到终端,它运行良好。

我需要在 Eclipse 中进行哪些更改才能使用已安装和选择的 gcc 版本?

4

1 回答 1

0

答案与 MacPorts 放置 gcc 的位置有关,而不是 XCode 放置它的位置。

  • MacPorts:/opt/local/bin/gcc
  • X代码:/usr/bin

因此,即使您使用 MacPorts 安装了更高版本的 gcc,eclipse 仍然使用旧版本。

在这个问题中找到这个问题后,我通过将Project Properties->C/C++ Build->Settings->Tool SettingsMacOS X C++ Linker 和 GCC C++ Compiler 中的编译器和链接器更改为将其作为命令/opt/bin/local/g++而不是g++.

这并没有完全解决我的问题,因为 CDT UI 仍在抱怨 C++ 11 功能,但我可以构建我的项目并运行它。

于 2013-07-23T19:30:34.160 回答