如何使Windows上的Ruby Gems安装使用MinGW进行制作和编译?
尝试更新Windows计算机上的一些gems时,对于没有预编译二进制文件的gems,我不断收到此错误输出:
提供的配置选项:
--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所需的一切。
不过,我不知道如何更改配置RubyGems的,这样,当extconf.rb把它叫做包含指向MinGW的适当的选项包括目录。
解决方案
我不知道这是否适用于本机Windows Ruby,但如果我们使用Cygwin版本并安装了完整的Cygwin(编译器等),那么我们应该不会有任何问题,我们已经能够使用很多gems需要编译的东西。
有一个DevKit很可能就是我们想要的。
通常,以我的经验来看,为Unix系统设计的代码很难在MinGW上工作。对于快速端口,请使用CygWin。或者将软件的完整端口移植到Windows主机上,包括使用本机Windows Shell和OS API,这在时间上是相当昂贵的,但是如果我们打算长期支持Windows,则可以得到回报。
不熟悉此特定软件包,这只是尝试将其他一些晦涩的代码片段移植到Windows时的一般观察。
我有同样的问题。
我发现获得没有预编译的二进制文件(例如parsetree)在Windows上运行的gem的唯一方法是使用Mingw重新编译Ruby源,并从已经拥有的可视c ++安装中复制几个库和应用程序。我复制的内容包括zlib库以及iconv库和应用程序。
注意:我正在使用此设置作为测试配置。我不会将这种设置用于生产(因为谁知道当我们从一个发行版到另一个发行版的库时会发生什么情况)。
院子,
太可惜了,我们没有提到要更新哪个gem,只将选项输出放在了那里。
此外,其中一些gem需要开发标头和库,而不仅仅是编译器(MinGW)。
另外,只要使用MinGW创建Ruby构建,MinGW就可以正常工作。
为了减轻这种负担,需要做一些工作,但是所有平台(不仅仅是Windows)都需要编译器,标头和库要求。
我们可以在我的博客上找到更多信息和资源
干杯。