2012-09-04 121 views
31

試圖安裝在山獅寶石,使找不到GCC-4.2:OS X山獅: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 

回答

89

如果您已經安裝的Xcode,海合會應可用。檢查它是:

kamil$ which gcc 
/usr/bin/gcc 

然後使從GCC-4.2用戶陸地符號鏈接普通GCC:

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

(確保用戶域綁定文件夾通過export PATH=...:$HOME/bin是在你的路徑在您的.bash_profile.zshrc。)

之後安裝好的Gem。

+2

它令我難以置信的是,爲什麼在安裝命令行工具時這並未默認設置。我花了很多時間試圖完成這項工作,最終遇到了你的答案。這是Ruby問題還是Xcode問題,即使安裝了gcc,這些操作仍然失敗? –

+0

如果在嘗試運行'ls -s/usr/bin/gcc /usr/bin/gcc-4.2'時出現'權限被拒絕'錯誤' 1)運行'sudo chmod 755/usr/bin/gcc' 2)運行'sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2' – ATSiem

+1

問題在於gcc版本可能實際上不是4.2。它將起到解決方案的作用,但這似乎是一個非常糟糕的解決方案。像@Piioo建議的那樣,實際上安裝正確版本的gcc與自制軟件可能會更好。 – caspian311

14

只需安裝apple-gcc42即可。它生成gcc-4.2。

brew install apple-gcc42 

所以我們不需要符號鏈接,蘋果更新可能會刪除。

Homebrew

1

由於@Artur Bodera提到現代OSX會拒絕讓你創建的系統/ 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 
+0

第一個命令給我一個 - 不允許的操作。目前我的.bash_profile有 - export PATH =「/ usr/local/bin:$ PATH」。更新它會安全嗎? 我在OSX 10.12.4上 –

相關問題