【问题标题】:Eclipse CDT is not using the correct version of gccEclipse CDT 未使用正确版本的 gcc
【发布时间】:2013-07-22 11:25:48
【问题描述】:

在 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 版本?

【问题讨论】:

  • 好的,抱歉,我错过了......在那种情况下,我不知道出了什么问题。

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


【解决方案1】:

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

  • Mac 端口:/opt/local/bin/gcc
  • XCode:/usr/bin

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

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

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

【讨论】:

  • 您能否解决 CDT UI 的问题(例如语法高亮和代码完成)?
  • 我已经设法解决了 CDT UI 的问题 :) 你可以看到我做了什么here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 2013-06-11
相关资源
最近更新 更多