Error installing eventmachine: error: failed to build gem native extension.

Steffen Roller

unread,

Feb 24, 2013, 6:20:41 PM2/24/13

to

Was somebody able to install Thin/Eventmachine using 64-bit versions of DEVKIT and Ruby?

I got the following error message(s):

make

generating rubyeventmachine-x64-mingw32.def

compiling binder.cpp

x86_64-w64-mingw32-g++.exe: error: unrecognized command line option '-EHs'

x86_64-w64-mingw32-g++.exe: error: unrecognized command line option '-GR'

make: *** [binder.o] Error 1

Gem files will remain installed in C:/ruby/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.0 for inspection.

Results logged to C:/ruby/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.0/ext/gem_make.out

under the 32-bit version the error is slightly different:

C:\temp>gem install eventmachine --platform=ruby

Temporarily enhancing PATH to include DevKit...

Building native extensions.  This could take a while...

ERROR:  Error installing eventmachine:

ERROR: Failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.rb

checking for main() in -lssl... *** extconf.rb failed ***

any ideas?

-st

Luis Lavena

unread,

Feb 24, 2013, 6:26:24 PM2/24/13

to

On Sun, Feb 24, 2013 at 10:20 PM, Steffen Roller
<> wrote:
> Was somebody able to install Thin/Eventmachine using 64-bit versions of
> DEVKIT and Ruby?
>
> I got the following error message(s):
>
> make
> generating rubyeventmachine-x64-mingw32.def
> compiling binder.cpp
> x86_64-w64-mingw32-g++.exe: error: unrecognized command line option '-EHs'
> x86_64-w64-mingw32-g++.exe: error: unrecognized command line option '-GR'
> make: *** [binder.o] Error 1
>
>

Looks to me eventmachine is not detecting properly the platform or
Ruby and it thinks is Visual C.

>
> under the 32-bit version the error is slightly different:
>
> C:\temp>gem install eventmachine --platform=ruby
> Temporarily enhancing PATH to include DevKit...
> Building native extensions. This could take a while...
> ERROR: Error installing eventmachine:
> ERROR: Failed to build gem native extension.
>
> C:/ruby/bin/ruby.exe extconf.rb
> checking for main() in -lssl... *** extconf.rb failed ***
>

The second error is because eventmachine requires OpenSSL.

Search the group to find knapsack packages to download and use as
headers/libs for compilation.

> any ideas?
>

I'm not sure if eventmachine compiles cleanly on Windows "natively",
it used to require cross-compilation.

I suggest report this issue to Eventmachine developers:

https://github.com/eventmachine/eventmachine/issues

and provide them:

ruby -v
gem -v
gcc --v

ruby -rrbconfig -e "p RbConfig::CONFIG.values_at('host_os', 'target_os')"

--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

Steffen Roller

unread,

Feb 24, 2013, 6:43:48 PM2/24/13

to

Hi Luis,

thanks for the info. I did compile before under 1.9.3, 32 bit.

I just switched back to gcc 4.5.2 and ruby 1.9.3-p374.

I'm going to reach out to the EM guys though.

BTW: It seems the version command is now

gcc -v (just one dash?)

gcc --v returned an error on my installation

-st

Luis Lavena

unread,

Feb 24, 2013, 6:48:01 PM2/24/13

to

mward

unread,

Feb 24, 2011, 9:41:18 AM2/24/11

to

Did an update Today and got an error during bundle install.

Did:

git pull
bundle install

Here is the output from bundle install:

gleanna@gleanna-diaspora:~/diaspora$ bundle install
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system:
Using rake (0.8.7)
Using SystemTimer (1.2.1)
Using abstract (1.0.0)
Using activesupport (3.0.3)
Using builder (2.1.2)
Using i18n (0.5.0)
Using activemodel (3.0.3)
Using erubis (2.6.6)
Using rack (1.2.1)
Using rack-mount (0.6.13)
Using rack-test (0.5.7)
Installing tzinfo (0.3.23)
Using actionpack (3.0.3)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.9)
Using mail (2.2.15)
Using actionmailer (3.0.3)
Using arel (2.0.8)
Using activerecord (3.0.3)
Using activeresource (3.0.3)
Using addressable (2.2.2)
Using http_connection (1.4.0)
Installing uuidtools (2.1.1)
Using xml-simple (1.0.14)
Using aws (2.3.32)
Using bcrypt-ruby (2.1.4)
Using bundler (1.0.10)
Using bunny (0.6.0)
Using highline (1.6.1)
Using net-ssh (2.0.24)
Using net-scp (1.0.4)
Using net-sftp (2.0.5)
Using net-ssh-gateway (1.0.1)
Using capistrano (2.5.19)
Using capistrano-ext (1.2.1)
Using culerity (0.2.15)
Using nokogiri (1.4.3.1)
Using ffi (0.6.3)
Using childprocess (0.1.7)
Using json_pure (1.5.1)
Using rubyzip (0.9.4)
Using selenium-webdriver (0.1.3)
Using capybara (0.3.9)
Using carrierwave (0.5.2)
Using cgi_multipart_eof_fix (2.5.0)
Using extlib (0.9.15)
Using json (1.4.6)
Using mixlib-log (1.2.0)
Using mixlib-authentication (1.1.4)
Using mixlib-cli (1.2.0)
Using mixlib-config (1.1.2)
Using moneta (0.6.0)
Using systemu (1.2.0)
Using ohai (0.5.8)
Using rest-client (1.6.1)
Using chef (0.9.12)
Using closure-compiler (1.0.0)
Using cloudfiles (1.4.10)
Using columnize (0.3.2)
Using configuration (1.2.0)
Using crack (0.1.8)
Using diff-lcs (1.1.2)
Using gherkin (2.3.3)
Using term-ansicolor (1.0.5)
Using cucumber (0.10.0)
Using cucumber-rails (0.3.2)
Using daemons (1.1.0)
Using database_cleaner (0.6.0)
Using warden (0.10.7)
Using devise (1.1.3)
Using devise_invitable (0.3.5) from git://github.com/zhitomirskiyi/devise_invitable.git (at 0.3.5)
Using eventmachine (0.12.10)
Using em-websocket (0.2.0) from git://github.com/igrigorik/em-websocket (at e278f5a)
Using excon (0.2.4)
Using factory_girl (1.3.3)
Using thor (0.14.6)
Using railties (3.0.3)
Using factory_girl_rails (1.0.1)
Using multipart-post (1.1.0)
Using faraday (0.5.4)
Using faraday_middleware (0.3.2)
Using fastercsv (1.5.4)
Using fastthread (1.0.7)
Using fixture_builder (0.2.0)
Using formatador (0.0.16)
Using ruby-hmac (0.4.0)
Using fog (0.3.25)
Using rspec-core (2.5.1)
Using rspec-expectations (2.5.0)
Using rspec-mocks (2.5.0)
Using rspec (2.5.0)
Using rspec-instafail (0.1.6)
Using ruby-progressbar (0.0.9)
Using fuubar (0.0.3)
Using gem_plugin (0.2.3)
Using googlecharts (1.6.1)
Using haml (3.0.25)
Using hashie (0.4.0)
Using http_accept_language (1.0.1) from git://github.com/iain/http_accept_language.git (at 0b78aa7)
Installing i18n-inflector (2.5.0)
Installing i18n-inflector-rails (1.0.3)
Using yui-compressor (0.9.4)
Using jammit (0.5.4)
Using selenium-client (1.2.18)
Using selenium-rc (2.3.1)
Using jasmine (1.0.1) from source at vendor/gems/jasmine
Using launchy (0.3.7)
Using linecache (0.43)
Using subexec (0.0.4)
Using mini_magick (3.2)
Using mongrel (1.1.5)
Using multi_json (0.0.5)
Using multi_xml (0.2.1)
Using mysql2 (0.2.6)
Using net-ldap (0.1.1)
Using oa-core (0.1.6)
Using oa-basic (0.1.6)
Using pyu-ruby-sasl (0.0.3.2)
Using rubyntlm (0.1.1)
Using oa-enterprise (0.1.6)
Using oauth (0.4.4)
Using oauth2 (0.1.1)
Using oa-oauth (0.1.6)
Using ruby-openid (2.1.8)
Using rack-openid (1.2.0)
Using ruby-openid-apps-discovery (1.2.0)
Using oa-openid (0.1.6)
Using omniauth (0.1.6)
Using rails (3.0.3)
Using redis (2.1.1)
Using redis-namespace (0.8.0)
Using tilt (1.2.2)
Using sinatra (1.1.3)
Using vegas (0.1.8)
Using resque (1.10.0)
Using roxml (3.1.6) from git://github.com/Empact/roxml.git (at 7ea9a9f)
Using rspec-rails (2.5.0)
Using ruby-debug-base (0.10.4)
Using ruby-debug (0.10.4)
Using simple_oauth (0.1.4)
Using thin (1.2.7)
Using twitter (1.0.0) from git://github.com/jnunemaker/twitter.git (at ef122bb)
Installing typhoeus (0.2.0) with native extensions /usr/lib/ruby/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/usr/bin/ruby1.8 extconf.rb
checking for curl/curl.h in /opt/local/include,/opt/local/include/curl,/usr/include/curl,/usr/include,/usr/include/curl,/usr/local/include/curl... no
need libcurl
*** 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
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/bin/ruby1.8

Gem files will remain installed in /home/gleanna/.bundler/tmp/911/gems/typhoeus-0.2.0 for inspection.
Results logged to /home/gleanna/.bundler/tmp/911/gems/typhoeus-0.2.0/ext/typhoeus/gem_make.out
        from /usr/lib/ruby/1.8/rubygems/installer.rb:446:in `each'
        from /usr/lib/ruby/1.8/rubygems/installer.rb:446:in `build_extensions'
        from /usr/lib/ruby/1.8/rubygems/installer.rb:198:in `install'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `run'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `send'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start'
        from /var/lib/gems/1.8/gems/bundler-1.0.10/bin/bundle:13
        from /usr/local/bin/bundle:19:in `load'
        from /usr/local/bin/bundle:19
gleanna@gleanna-diaspora:~/diaspora$

It says to look at mkmf.log but I get a load of those files when I do a locate

This Error looks similar to the one I got when did the bundle install during initial installation, which crashed on ffi 0.6.3. I fixed that by copying over the app_config.yml and database.yml to the Diaspora directory. I don't know where to look for solutions to this one. Help much appreciated

Jonne Hass

unread,

Feb 24, 2011, 9:59:28 AM2/24/11

to

There's a new dependency on curl. If you're on Debian/Ubuntu install
libcurl4-openssl-dev and run bundle install again. Don't know the
package name on other systems. Btw. it actually says "need libcurl" ;)

Raphael Sofaer

unread,

Feb 24, 2011, 10:05:40 AM2/24/11

to

Yeah, sorry about that. We're now using curl-multi for federation.

mward

unread,

Feb 24, 2011, 11:33:29 AM2/24/11

to

Sorry MrZYX, I completely missed about libcurl. I was focusing on the first section about the ERROR. I searched for about 2 hours today looking for a solution, so thank you. How did you know it needed the exact package libcurl4-openssl-dev?