Eclipse CDT未使用正确版本的gcc

时间:2013-07-23 11:50:15

标签: c++ macos c++11 eclipse-cdt

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

我按照说明herehere,现在可以从命令行使用-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版本?

1 个答案:

答案 0 :(得分:0)

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

  • MacPorts:/ opt / local / bin / gcc
  • XCode:/ usr / bin

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

this question中找到此内容之后,我通过更改Project Properties->C/C++ Build->Settings->Tool Settings,MacOS X C ++ Linker和GCC C ++编译器中的编译器和链接器来修复此问题,使其具有/opt/bin/local/g++的命令,而不是{ {1}}。

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