在OS X机器上(Snow Leopard,如果重要的话),我正在尝试从gcc 4.2.1升级到4.7.3。
我按照说明here和here,现在可以从命令行使用-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版本?
答案 0 :(得分:0)
答案与MacPorts放置gcc的位置有关,而不是XCode放置的位置。
因此,即使您使用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的功能,但我可以构建我的项目并运行它。