2013-02-15 70 views
1

操作系統:Mac OS X 10.8.2 的XCode:最新安裝的命令行工具(版本4.6) 的Rails:3.2.3版JSON寶石未能編譯在Mac OS X 10.8.2

我試着爲我正在處理的項目(定期執行該項目)生成路由,當我收到錯誤消息時,推薦我捆綁安裝和捆綁exec。我做了,這一次,編譯JSON Gem(版本1.7.7)時進程中斷了。

對StackOverflow做了一些研究,建議更新XCode的命令行工具,我做了,但是這並沒有解決問題。

我嘗試安裝的JSON版本1.7.7分開,它失敗了,告訴我去尋找錯誤日誌中:

~/.rvm/gems/ruby-1.9.3-p125/gems/json-1.7.7/ext/json/ext/generator/gem_make.out 

曰:

/Users/mine/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
creating Makefile 

make 
compiling generator.c 
make: /usr/bin/gcc-4.2: No such file or directory 
make: *** [generator.o] Error 1 

我找了/ usr/bin/gcc-4.2,實際上,它不在那裏。但是,當我做:

ls -l /usr/bin/gcc 

這裏就是我得到:

lrwxr-xr-x 1 root wheel 12 Feb 14 15:49 /usr/bin/gcc -> llvm-gcc-4.2 

我該如何解決這個問題?

+0

您是否試過將'/ usr/bin/gcc-4.2'符號鏈接到同一個二進制文件? 'cd/usr/bin && sudo ln -s llvm-gcc-4.2 gcc-4.2' – Tim 2013-02-15 00:24:06

回答

2

我認爲問題在於,當您安裝Xcode命令行工具時,gcc與sym-linked連接到llvm,並且llvm不能始終正確編譯Ruby和gem。

如果您直接安裝autoconf,automakegcc(或通過類似Homebrew的東西),則應該可以修復編譯器錯誤。

+0

警告:確保你做了sudo,否則「brew install gcc」將全部失效。這適用於bundle:install。我現在無法做到「耙路」,我得到以下錯誤信息:您已經激活了耙10.0.3,但您的Gemfile需要耙0.9.2.2。使用bundle exec可以解決這個問題。 – EastsideDeveloper 2013-02-15 12:12:40

+0

bundle exec是否解決了這個問題?您也可以嘗試更改您的Gemfile指定的rake版本。 – Andy 2013-02-15 14:22:49

+0

我不得不卸載rake,並將gem'rake'添加到我的gemfile中,然後重新運行bundle:install。這解決了問題。 – EastsideDeveloper 2013-02-15 16:02:12

0

問題是,您用來編譯安裝版本的紅寶石的gcc作爲xcode升級的一部分被刪除。使用RVM重建你的ruby(你可能也想升級到最新版本)。一旦你這樣做,你應該沒有問題與原生擴展構建寶石。