OS X Mountain Lion:gcc-4.2没有这样的文件或目录

时间:2012-09-04 04:00:34

标签: ruby gcc gem makefile osx-mountain-lion

试图在Mountain Lion上安装一个gem并且找不到gcc-4.2:

kamil$ gem install posix-spawn -v '0.3.6'
Building native extensions.  This could take a while...
ERROR:  Error installing posix-spawn:
    ERROR: Failed to build gem native extension.

        /Users/kamil/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb
creating Makefile

make
compiling posix-spawn.c
make: gcc-4.2: No such file or directory
make: *** [posix-spawn.o] Error 1

4 个答案:

答案 0 :(得分:90)

如果安装了Xcode,gcc应该可用。检查它的位置:

kamil$ which gcc
/usr/bin/gcc

然后创建一个从gcc-4.2到plain gcc的用户土地符号链接:

kamil$ sudo ln -s ~/bin/gcc /usr/bin/gcc-4.2

(通过export PATH=...:$HOME/bin.bash_profile中的.zshrc确保用户登陆文件夹位于您的路径中。

之后安装了Gem。

答案 1 :(得分:14)

使用brew安装简单的apple-gcc42。它生成gcc-4.2。

brew install apple-gcc42

因此我们不需要符号链接,苹果更新可能会删除。

Homebrew

答案 2 :(得分:1)

正如@Artur Bodera所说,现代OSX将拒绝让你在systems / bin文件夹中创建符号链接。

为避免这种情况,只需创建用户bin文件夹的符号链接

即可
ln -s ~/bin/gcc /usr/bin/gcc-4.2

不要忘记将bin文件夹添加到.zshrc或.bash_profile中 - 例如。

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/bin

答案 3 :(得分:1)

我在安装python pip软件包时遇到了类似的问题(构建轮子失败)。我收到了类似的消息:

unable to execute '/usr/bin/gcc-4.2': No such file or directory
  error: command '/usr/bin/gcc-4.2' failed with exit status 1

由于苹果系统完整性保护(SIP),无法将/usr/bin/gcc-4.2链接到/usr/bin/gcc,并且车轮组装过程未将其链接到/usr/local/bin/gcc-4.2。它仍在尝试使用/usr/bin/gcc-4.2

我终于可以通过在终端中设置CC变量来解决此问题:

CC=/usr/bin/gcc
# Install your packages
pip install -r requirements.txt

PS:请注意,即使禁用了SIP,禁用SIP也不起作用,我无法创建/usr/bin/gcc-4.2链接。