代码之家  ›  专栏  ›  技术社区  ›  erlando

如何处理Windows上gem中失败的本机扩展生成?

  •  1
  • erlando  · 技术社区  · 14 年前

    我下载的几个Rails应用程序都有依赖关系 bson_ext 似乎是一个本机代码库。当我跑的时候 rake gems:install 对于该应用程序,我收到以下错误消息:

    ERROR:  Error installing bson_ext:
            ERROR: Failed to build gem native extension.
    
    d:/Ruby187/bin/ruby.exe extconf.rb
    checking for asprintf()... no
    checking for ruby/st.h... no
    checking for st.h... no
    checking for ruby/regex.h... no
    checking for regex.h... no
    checking for ruby/encoding.h... no
    creating Makefile
    
    make
    'make' is not recognized as an internal or external command,
    operable program or batch file.
    
    
    Gem files will remain installed in d:/Ruby187/lib/ruby/gems/1.8/gems/bson_ext-1.0.1 for inspection.
    Results logged to 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上构建,我需要什么工具链?海湾合作委员会?

    4. 我应该放弃Windows来开发Rails而改用Mac或Linux虚拟机吗?

    3 回复  |  直到 14 年前
        1
  •  2
  •   horseyguy    14 年前

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

        2
  •  1
  •   alex.zherdev    14 年前
    1. 是的,如果没有安装它所依赖的gem之一,这个应用程序就不会启动。包含本机扩展的gem不能安装,除非该扩展被正确编译。
    2. 你需要一个C编译器和其他工具,比如make。在大多数情况下,安装VisualStudio或VisualC++都是足够的。
        3
  •  1
  •   Joshua Partogi    14 年前

    你有没有试过让鲁比 Cygwin