La instalación de la gema falla con "El compilador no pudo generar un archivo ejecutable" en cygwin

La instalación de la gema falla con "El compilador no pudo generar un archivo ejecutable" en cygwin

Al intentar instalar varias gemas cygwin, sigo recibiendo este error:/usr/share/ruby/2.2.0/mkmf.rb:456:in try_do': The compiler failed to generate an executable file. (RuntimeError)

Este error es parte del mensaje de error completo a continuación:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /usr/bin/ruby.exe -r ./siteconf20150603-27012-w371hi.rb extconf.rb
*** 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
        [...truncated...]
        --without-pkg-config
/usr/share/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from /usr/share/ruby/2.2.0/mkmf.rb:541:in `try_link0'
        from /usr/share/ruby/2.2.0/mkmf.rb:556:in `try_link'
        from /usr/share/ruby/2.2.0/mkmf.rb:637:in `try_ldflags'
        from /usr/share/ruby/2.2.0/mkmf.rb:1780:in `pkg_config'
        from extconf.rb:15:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /cygdrive/d/d/.gem/ruby/gems/ffi-1.9.8 for inspection.
Results logged to /cygdrive/d/d/.gem/ruby/extensions/x86_64-cygwin/ffi-1.9.8/gem_make.out

Probé todo lo que pude encontrar en Google, de los cuales algunos realmente funcionan, entre ellos:

  • Instalación del paquete cygwin correspondiente a la gema mediante la configuración de cygwin
  • Instalar más paquetes cygwin, dependiendo de la gema que falla

Pero para este ejemplo tan específico, no pude encontrar lo que faltaba...

Respuesta1

La solución para este error fue (y es para todos esos errores) echar un vistazo al mkmf.logarchivo (para mí /cygdrive/d/d/Documents/.gem/ruby/extensions/x86_64-cygwin/ffi-1.9.8/mkmf.log) y ver qué bibliotecas faltan.

En mi caso, -lcryptestaban -lgmpfallando, así que tuve que "cygwin-setup" libcrypt-devely libgmp-devel.

información relacionada