在Windows上安装Starling

时间:2020-03-06 15:03:35  来源:igfitidea点击:

我正在尝试在Windows计算机上安装Starling gem。但是,每当我尝试安装它时,都会出现此错误:

Building native extensions.  This could take a while...  
ERROR:  Error installing starling:  
        ERROR: Failed to build gem native extension.  

c:/ruby/bin/ruby.exe extconf.rb install starling -- --srcdir= c:\ruby-1.8.7-p72  
checking for windows.h... no  
*** extconf.rb failed ***  
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:  
        --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:/ruby/bin/ruby  

Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/eventmachine-0
.12.2 for inspection.  
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/eventmachine-0.12.2/ext/gem_mak
e.out

我需要安装什么才能提供windows.h标头?

解决方案

安装似乎停留在安装eventmachine gem上。
这里最简单的方法可能是在此处下载并安装Windows的eventmachine二进制gem

否则,我们将需要编译器。 (我假设我们没有)

我不知道这是否行得通,但是有人正在使用Windows附带C编译器的Ruby一键安装程序。

参见http://github.com/luislavena/rubyinstaller/tree/master

目前,在Windows上,Gems已被破坏,但在Windows上已被修复。以下解决方法适用于Ruby的一键安装程序的旧版本;我们应该真正更新到新的基于MinGW的RubyInstaller和DevKit,该解决方法仍然可以使用,但可以为将来提供更多证明。

  • 找到具有win32二进制文件的问题gem(在本例中为eventmachine)的版本。如果我们查看RubyForge,我们会看到拥有Win32二进制文件的最后一个eventmachine gem是版本0.12.0。
  • 强制安装该版本的事件计算机:`$ gem install eventmachine --version = 0.12.0已成功安装eventmachine-0.12.0-x86-mswin32 1 gem已安装为eventmachine-0.12.0-x86-mswin32安装ri文档。 。为eventmachine-0.12.0-x86-mswin32 ...安装RDoc文档。
  • 现在安装,尝试再次安装原始的gem:$ gem install starling成功安装ZenTest-3.10.0成功安装memcache-client-1.5.0成功安装SyslogLogger-1.4.0成功安装starling-0.9.8已安装4个gems安装ri文档适用于ZenTest-3.10.0 ...正在安装memcache-client-1.5.0的ri文档...正在安装SyslogLogger-1.4.0的ri文档...正在安装starling-0.9.8的ri文档...安装RDoc文档适用于ZenTest-3.10.0 ...正在安装用于memcache-client-1.5.0的RDoc文档...正在安装用于SyslogLogger-1.4.0的RDoc文档...正在安装starling-0.9.8的RDoc文档...

请注意,如果我们现在运行gem update,gems会愚蠢地尝试安装最新版本的eventmachine,正如我们已经知道的那样,它不会在Windows上构建。这会导致宝石更新完全停止。请参阅此问题,以了解如何解决这种特殊的烦恼。

现在已经安装了所有内容,是否可以在Windows下运行它?我在这台机器上没有实现fork()函数,因为Windows没有fork()进程。