在OSX Lion上使用g ++,ld:未知选项:-no_compact_unwind

Jef*_*rey 1 c++ g++ ld osx-lion

我按照https://sites.google.com/site/dwhipp/tutorials/mac_compilers上有关OSX Lion和XCode 4.3 的说明在命令行中使用g ++,但是当我运行它时,我得到了这个:

jeff~/Dropbox/cpp$ g++ hello.cpp 
ld: unknown option: -no_compact_unwind
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

小智 6

如果你想在Mac OS X Lion上通过命令行使用最新版本的GCC(4.7),我有一个更好的解决方案.

安装MacPorts(您可以下载源代码并编译它或下载pkg安装程序):

http://www.macports.org/install.php

安装MacPort,打开终端并输入(需要root密码)

sudo port selfupdate
Run Code Online (Sandbox Code Playgroud)

用于更新端口树.然后输入

sudo port install gcc47 +universal
Run Code Online (Sandbox Code Playgroud)

此命令将在Mac上安装GCC 4.7编译器(此编译将花费大量时间,请耐心等待).现在,您可以通过名称下的命令行访问GCC 4.7编译器

gcc-mp-4.7
Run Code Online (Sandbox Code Playgroud)

(g++-mp-4.7用于C++编译).您还添加了新的C++ 11标准选项

g++-mp-4.7 -std=c++11
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果您使用MacPorts安装gcc_select,您可以通过执行"sudo port select --set gcc gcc47"告诉OSX使用MacPort gcc47而不是默认gcc.现在当你使用"gcc"时,你将使用mp-gcc47(同样适用于g ++). (2认同)