Eclipse不会在Mac上使用gcc 4.7

时间:2012-10-13 05:28:20

标签: gcc

我使用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

我不确定我是做什么工作的。对于我在学校写的课程,我需要一个更新的编译器。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

问题是eclipse路径上的发现顺序与终端中的顺序不同。我曾经按照上面的建议尝试了符号链接,但仍然没有解决我的问题,但是这样做了!

经过多次搜索和尝试其他事情后,我能够在Project -> Properties -> C/C++ Build -> Settings中手动设置我的编译器和链接器的路径。

从终端

执行g ++以找出安装了正确版本的g ++的位置。我在/opt/local/bin/g++

单击GCC C ++ Compiler,并使用它的完整路径填写命令(例如/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)执行相同的操作。

这最终对我有用,我希望它能解决你的问题!

答案 1 :(得分: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版本来解决此问题。

答案 2 :(得分:-2)

当你输入-stdc ++ 11时,你在-c -fmessage-length = 0和它之间放了一个“空格”吗?比如...... -c -fmessage-length = 0 -stdc ++ 11 not -c -fmessage-length = 0-stdc ++ 11。那个单一的空间阻止了eclipse在windows中识别gcc。