2011-10-15 91 views
12

我在做一個bundle安裝,所有的gems都能正常工作,除了JSON,當它到達JSON gem時我收到這個錯誤。無法在窗口中安裝JSON gem使用windows

Installing json (1.6.1) with native extensions c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:55 
    2:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::E 
    xtensionBuildError) 

      c:/Ruby192/bin/ruby.exe extconf.rb 
    checking for re.h... *** extconf.rb failed *** 
    Could not create Makefile due to some reason, probably lack of 
    necessary libraries and/or headers. Check the mkmf.log file for more 
    details. You may need configuration options. 

任何想法可能會導致此錯誤?

回答

4

這是因爲這個寶石使用了一塊寫在C上的代碼。爲了正常工作,你需要在你的機器上安裝c編譯器。作爲一種方式,儘量使用寫在純Ruby

16

您正在使用Windows系統json_pure,所以RubyInstaller開發工具包可以幫助你: http://rubyinstaller.org/add-ons/devkit/

的的devkit安裝一個C編譯器(和一些其他的東西)編譯C寫的部分。

安裝它,然後再次嘗試安裝gem - 或許使用選項--platform=ruby

詳情可https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

+5

這是一個正確的答案,但一定要做好創業板更新--system或你仍然有與rubyinstaller – pguardiario

+1

尼斯,解決了我的問題的問題DevKit +1 – a5his

+2

甚至還有一個用於devkit的Chocolatey NuGet安裝程序! http://chocolatey.org/packages/ruby.devkit – mcandre

0

發現我不是ROR的專家,但JSON的安裝問題,我得到了,而安裝在管理平臺通過以下操作解決:

  • 創建生成.bat at D:\ LANGS \ MinGW \ bin
  • 將此目錄保存在路徑中
  • 編輯上述make.bat並添加一行D:\ LANGS \ MinGW \ msys \ 1.0 \ bin \ make.exe

我意識到的是,mingw32-make.exe從來沒有工作,但'D:\ LANGS \ MinGW \ msys \ 1.0 \ bin \ make.exe'工作。

注意:我的MinGW安裝位於D:\ LANGS \下。請在您的特定安裝中進行相應的更改。

-1

是的,安裝開發套件。此外,您將需要運行幾條命令行來安裝它(不只是簡單地下載並運行)。

下載它,運行它將其解壓到某處(永久)。然後cd到它,運行ruby dk.rb init和ruby dk.rb install將它綁定到你的路徑中的ruby安裝。

用於該指南是在這裏:

https://github.com/oneclick/rubyinstaller/wiki/Development-Kit