Eclipse 不会在 Mac 上使用 gcc 4.7
Posted
技术标签:
【中文标题】Eclipse 不会在 Mac 上使用 gcc 4.7【英文标题】:Eclipse will not use gcc 4.7 on Mac 【发布时间】:2012-10-13 05:28:19 【问题描述】:我使用 macports 安装了 gcc47。我使用 select 使 gcc47 成为我的活动编译器。当我在终端中输入 gcc --version 时,我得到了这个: gcc (MacPorts gcc47 4.7.2_2) 4.7.2 版权所有 (C) 2012 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有 保修单;甚至不是为了适销性或特定用途的适用性。
当我尝试在 Eclipse 中编译 c++ 代码时,我得到: 调用:GCC C++ 编译器 g++ -D__GXX_EXPERIMENTAL_CXX0X__ -I/Users/XXXX/QtSDK/Madde/sysroots/harmattan_sysroot_10.2011.34-1_slim/usr -O0 -g3 -Wall -c -fmessage-length=0 -std=c++0x -MMD -MP -MF “XXXX_Process.d”-MT“XXXX_Process.d”-o“XXXX_Process.o”“../XXXX_Process.cpp” cc1plus:错误:无法识别的命令行选项“-std=c++0x” make: * [XXXX_Process.o] 错误 1
我不确定我没有做些什么来完成这项工作。对于我在学校编写的程序,我需要一个更新的编译器。提前感谢您的帮助。
【问题讨论】:
-std=c++11 也不行 【参考方案1】:问题是 Eclipse 路径上的发现顺序与终端中的顺序不同。我已经按照上面的建议尝试了符号链接,但仍然没有解决我的问题,但是这样做了!
经过大量搜索和尝试其他事情,我能够在Project -> Properties -> C/C++ Build -> Settings
中手动设置我的编译器和链接器的路径。
从终端执行 which g++ 以找出正确版本的 g++ 的安装位置。我的在/opt/local/bin/g++
点击 GCC C++ 编译器,并填写命令的完整路径(例如,/opt/local/bin/g++
)。点击 Miscellaneous 以确保添加 -std=c++11
标志。
对 GCC C 编译器(将命令设置为完整路径 /opt/local/bin/g++
)、GCC C++ 链接器 (/opt/local/bin/g++
) 和 GCC 汇编器 (/opt/local/bin/as
) 执行相同的操作。
这终于为我工作了,我希望它能解决你的问题!
【讨论】:
【参考方案2】:MacPorts 将 gcc 安装到 /opt/local/bin
,而 /usr/bin
保持不变。前者显然在默认 shell $PATH
中具有更高的优先级,因此 shell 会在 /opt/local/bin
下找到 gcc,即使 /usr/bin/gcc
仍然指向 mac LLVM-gcc-4.2 编译器。 Eclipse 显然没有像终端一样设置$PATH
,因此找到了/usr/bin/
版本。
我可以通过手动将 /usr/bin/gcc,g++
符号链接到 MacPorts 版本来解决此问题。
【讨论】:
【参考方案3】:当你进入-stdc++11的时候,你有没有在-c -fmessage-length=0和它之间放一个“空格”?像...-c -fmessage-length=0 -stdc++11 不是 -c -fmessage-length=0-stdc++11。那个单一的空间阻止了eclipse在windows中识别gcc。
【讨论】:
以上是关于Eclipse 不会在 Mac 上使用 gcc 4.7的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac OS X 10.8 / Xcode 4.4 上使用/安装 gcc
使用 GCC 4 在 Mac OS X 中安装 gammu 时出现 LONG_BIT 错误