【问题标题】:How do I make Ruby Gems installations on Windows use MinGW for making and compiling?如何在 Windows 上使用 MinGW 制作和编译 Ruby Gems?
【发布时间】:2010-09-15 03:42:36
【问题描述】:

尝试在 Windows 机器上更新一些 gem,但对于没有预编译二进制文件的 gem,我不断收到此错误输出:

提供的配置选项:

    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --srcdir=.
    --curdir
    --ruby=c:/server/ruby/bin/ruby

这些是在安装 gem 期间提供给 extconf.rb ruby​​ 文件的配置选项。

我已经安装了 MinGW,所以我应该拥有安装、制作和编译这些 gem 所需的一切。
However, I do not know how to change the configuration for RubyGems so that when extconf.rb is called it includes the appropriate options pointing to the MinGW 包含目录。

【问题讨论】:

    标签: ruby windows makefile rubygems extconf.rb


    【解决方案1】:

    我不知道这是否适用于本机 Windows Ruby,但如果您使用 Cygwin 版本并安装了完整的 Cygwin(编译器等),那么您应该没有任何问题 - 我们已经能够使用很多宝石需要编译的东西。

    【讨论】:

      【解决方案2】:

      有一个DevKit 很可能就是您所追求的。

      【讨论】:

      • 谢谢 - 在阅读本文之前,我不知道 gems 需要使用与 Ruby 语言本身相同的编译器进行编译。在这种情况下,我采取了另一种方式——我已经安装了 VC6,并且在头文件中添加了一个小代码,一切正常。谢谢。
      【解决方案3】:

      一般来说,根据我的经验,为 unix 系统设计的代码很难在 MinGW 上运行。对于快速移植,请使用 CygWin。或者将软件完整移植到 Windows 主机,包括使用本机 Windows shell 和 OS API——这在时间上是相当昂贵的,但如果你计划长期支持 Windows,这是值得的。

      不熟悉这个特定的软件包,这只是对尝试将一些其他卑鄙的代码移植到 Windows 的一般观察。

      【讨论】:

        【解决方案4】:

        我也遇到了同样的问题。

        我发现让没有预编译二进制文件(例如 parsetree)的 gem 在 Windows 上运行的唯一方法是使用 Mingw 重新编译 Ruby 源代码,并从 Visual c++ 安装中复制几个库和应用程序。已经有了。我复制的内容包括 zlib 库以及 iconv 库和应用程序。

        注意:我将此设置用作测试配置。我不会将这样的设置用于生产(因为谁知道当您将库从一个发行版转移到另一个发行版时会发生什么)。

        【讨论】:

          【解决方案5】:

          园丁,

          很遗憾,您没有提及您要更新哪个 gem,您只将选项输出放在那里。

          此外,其中一些 gem 需要开发头文件和库,而不仅仅是编译器 (MinGW)。

          此外,只要您拥有的 Ruby 版本是 使用 MinGW 创建的,MinGW 就可以工作。

          正在做一些工作来缓解这种情况,但所有平台都需要编译器、头文件和库要求,而不仅仅是 Windows。

          您可以在my blog找到更多信息和资源

          干杯。

          【讨论】:

            猜你喜欢
            • 2010-11-12
            • 2011-07-12
            • 2020-11-22
            • 2017-03-04
            • 2021-02-09
            • 2013-01-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多