0

使用 ruby​​ v 1.9.3p448 我得到一个 failed to build gem native extension 错误,但它似乎使用的是 Ruby 2.0.0

我是 ruby​​ 新手,我只是想运行这个程序https://github.com/propublica/qis

这是来自 aptana 3 终端的注释:

minh@WIN7VM1 ~/Documents/Aptana3Space/qis (master)
$ ruby -v
ruby 1.9.3p448 (2013-06-27) [i386-mingw32]

minh@WIN7VM1 ~/Documents/Aptana3Space/qis (master)
$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using daemons (1.1.9)
Installing eventmachine (1.0.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    c:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for main() in -lssl... no
checking for rb_trap_immediate in ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... yes
checking for inotify_init() in sys/inotify.h... no
checking for __NR_inotify_init in sys/syscall.h... no
checking for writev() in sys/uio.h... no
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for windows.h... yes
checking for winsock.h... yes
checking for main() in -lkernel32... yes
checking for main() in -lrpcrt4... yes
checking for main() in -lgdi32... yes
creating Makefile

make "DESTDIR="
generating rubyeventmachine-x64-mingw32.def
compiling binder.cpp
In file included from c:\users\minh\downloads\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/process.h:12:0,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/win32.h:60,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/defines.h:153,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby/ruby.h:70,
                 from c:/Ruby200-x64/include/ruby-2.0.0/ruby.h:33,
                 from em.h:24,
                 from project.h:150,
                 from binder.cpp:20:
c:\users\minh\downloads\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/sys/types.h:68:16: error: conflicting declaration 'typedef _pid_
t pid_t'
In file included from binder.cpp:20:0:
project.h:97:13: error: 'pid_t' has a previous declaration as 'typedef int pid_t'
In file included from project.h:151:0,
                 from binder.cpp:20:
ed.h: In member function 'void EventableDescriptor::SetSocketInvalid()':
ed.h:43:40: warning: overflow in implicit constant conversion [-Woverflow]
make: *** [binder.o] Error 1


Gem files will remain installed in c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3 for inspection.
Results logged to c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/ext/gem_make.out
An error occurred while installing eventmachine (1.0.3), and Bundler cannot
continue.
Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.

minh@WIN7VM1 ~/Documents/Aptana3Space/qis (master)
$

这是来自 cmd.exe 终端的注释

Directory of C:\Users\minh\Documents\Aptana3Space\qis
07/17/2013  02:28 PM    <DIR>          .
07/17/2013  02:28 PM    <DIR>          ..
07/17/2013  02:28 PM                47 .gitignore
07/17/2013  02:28 PM               207 .project
07/17/2013  02:28 PM             2,277 app.rb
07/17/2013  02:28 PM                26 config.ru
07/17/2013  02:28 PM                89 Gemfile
07/17/2013  02:28 PM               559 Gemfile.lock
07/17/2013  02:28 PM               961 goog_geocoder.rb
07/17/2013  02:28 PM             2,224 README.md
07/17/2013  02:28 PM    <DIR>          views
           8 File(s)          6,390 bytes
           3 Dir(s)  514,066,120,704 bytes free

C:\Users\minh\Documents\Aptana3Space\qis>bundle install
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Co
    uld not find bundler (>= 0) amongst [bigdecimal-1.1.0, eventmachine-1.0.3-x86-mi
ngw32, io-console-0.3, json-1.5.5, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.5] (Ge
m::LoadError)
    from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `
to_spec'
    from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
    from C:/Ruby200-x64/bin/bundle:22:in `<main>'

C:\Users\minh\Documents\Aptana3Space\qis>
4

2 回答 2

3

我猜你的系统中缺少 openssl,安装它。

lssl 标记为 no,表示 openssl。

事件机具有以下依赖项

  • OpenSSL
  • libstd++

和普通的,红宝石和耙子。

试试看。

并与您更新的问题。我怀疑捆绑器宝石是否丢失。

gem install bundler

而且我不知道 Windows 中的 openssl 安装是如何工作的,很长时间以来我与世界的那一部分失去了联系。;)

于 2013-07-18T16:25:32.237 回答
1

您很可能需要 Ruby DevKit for windows 来构建扩展。访问此网站http://rubyinstaller.org/downloads/并下载适合您的系统/安装的 devkit。然后按照安装说明进行操作。

于 2013-07-18T16:58:16.277 回答