如何处理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
我的问题是:
-
我的rails应用程序会因此而失败,我想我知道答案吗?
-
如果我需要构建这个gem,我可以在windows上做吗?
-
如果它可以在Windows上构建我需要什么工具链? GCC?
-
我应该放弃Windows for Rails开发并使用我的Mac或Linux VM吗?
尝试使用RubyInstaller和可选的DevKit 。 安装DevKit后,您应该能够在Windows上构建(编译)大多数本机扩展。
- 是的,如果未安装其所依赖的gem之一,则此应用程序将无法启动。 除非正确编译扩展,否则无法安装包含本机扩展的gem。
- 嗯,Windows不是ruby世界中支持最多的操作系统:)但我认为你有机会。
- 你需要一个C编译器和make之类的其他工具。 在大多数情况下,安装Visual Studio或Visual C ++就足够了。
- 强烈建议用于任何或多或少的严重开发。 您可能会在Windows上遇到一些令人讨厌的问题。 自从我切换到mac后,我自己也变得像开发人员一样快乐:)
你试过从Cygwin运行Ruby吗?