如何处理Windows上的gem中的原生扩展失败?

我下载的一些Rails应用程序依赖于bson_ext ,它似乎是一个本机代码库。 当我运行rake gems:install为应用程序rake gems:install ,我收到以下错误消息:

错误:安装bson_ext时出错:
        错误:无法构建gem原生扩展。

 d:/Ruby187/bin/ruby.exe extconf.rb
检查asprintf()...没有
检查ruby / st.h ...没有
检查st.h ...没有
检查ruby / regex.h ...没有
检查regex.h ...没有
检查ruby / encoding.h ...没有
创建Makefile

使
 'make'不被视为内部或外部命令,
可操作程序或批处理文件。


 Gem文件将保留在d:/Ruby187/lib/ruby/gems/1.8/gems/bson_ext-1.0.1中进行检查。
结果记录到d:/Ruby187/lib/ruby/gems/1.8/gems/bson_ext-1.0.1/ext/cbson/gem_make.out

我的问题是:

  1. 我的rails应用程序会因此而失败,我想我知道答案吗?

  2. 如果我需要构建这个gem,我可以在windows上做吗?

  3. 如果它可以在Windows上构建我需要什么工具链? GCC?

  4. 我应该放弃Windows for Rails开发并使用我的Mac或Linux VM吗?

尝试使用RubyInstaller和可选的DevKit 。 安装DevKit后,您应该能够在Windows上构建(编译)大多数本机扩展。

  1. 是的,如果未安装其所依赖的gem之一,则此应用程序将无法启动。 除非正确编译扩展,否则无法安装包含本机扩展的gem。
  2. 嗯,Windows不是ruby世界中支持最多的操作系统:)但我认为你有机会。
  3. 你需要一个C编译器和make之类的其他工具。 在大多数情况下,安装Visual Studio或Visual C ++就足够了。
  4. 强烈建议用于任何或多或少的严重开发。 您可能会在Windows上遇到一些令人讨厌的问题。 自从我切换到mac后,我自己也变得像开发人员一样快乐:)

你试过从Cygwin运行Ruby吗?