错误:无法在Windows上构建gem原生扩展

我在安装’ redcarpet ‘gem时遇到以下错误。 它虽然在我朋友的机器上安装没有问题。 (我想安装它来运行yard )Ruby版本:1.9.3

cmd输出:

 D:\Learning\Common_POM_FW\SampleProjects>yard [error]: Missing 'redcarpet' gem for Markdown formatting. Install it with `gem install redcarpet` D:\Learning\Common_POM_FW\SampleProjects>gem install redcarpet Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing redcarpet: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe -r ./siteconf20141009-6544-978w4t.rb extconf.rb creating Makefile make clean Makefile:165: *** target pattern contains no `%'. Stop. make Makefile:165: *** target pattern contains no `%'. Stop. make failed, exit code 2 Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/redcarpet-3.1.2 for inspectio n. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/extensions/x86-mingw32/1.9.1/redcarpet-3.1.2/gem_ma ke.out 

更新:使用https://github.com/oneclick/rubyinstaller/wiki/Development-Kit提供的devkit安装说明当我用json gem测试安装时它也失败了:(

我通过github 本地gem扩展错误的链接进行故障排除,并按照说明解决,但问题仍然存在..

我添加了两个路径到Env var C:\\ruby_devkit\\bin;C:\\ruby_devkit\\mingw\\bin; 这将删除Temporarily enhancing PATH to include DevKit...的行, Temporarily enhancing PATH to include DevKit...出现在cmd上的Temporarily enhancing PATH to include DevKit...

经过大量研究后,我发现罪魁祸首是RubyGems版本与原生扩展gem的不兼容性!

我有ruby gems ver 2.4.1但似乎> 2.4.0有这些问题

gem update --system 2.3.0为我做了诀窍:)

参考: https : //github.com/rubygems/rubygems/issues/977

降级rubygem对我来说不起作用。

工作是什么(安装了最新版本的ruby gems):

以管理员身份打开CMD并…

 gem install json --platform=ruby --verbose 

( 丹尼史密斯 在这里添加了答案 )