Falha na instalação do Gem com “O compilador falhou ao gerar um arquivo executável” no cygwin

Falha na instalação do Gem com “O compilador falhou ao gerar um arquivo executável” no cygwin

Tentando instalar várias gemas cygwin, continuo recebendo este erro:/usr/share/ruby/2.2.0/mkmf.rb:456:in try_do': The compiler failed to generate an executable file. (RuntimeError)

Este erro faz parte da mensagem de erro completa abaixo:

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

Tentei todas as coisas que pude encontrar no Google, algumas das quais realmente funcionam, incluindo:

  • Instalando o pacote cygwin correspondente à gema por meio da configuração do cygwin
  • Instalando mais pacotes cygwin, dependendo da gem com falha

Mas para este exemplo muito específico, não consegui encontrar o que estava faltando...

Responder1

A solução para esse erro foi (e é para todos esses erros) dar uma olhada no mkmf.logarquivo (para mim /cygdrive/d/d/Documents/.gem/ruby/extensions/x86_64-cygwin/ffi-1.9.8/mkmf.log) e ver quais bibliotecas estão faltando.

No meu caso, -lcrypte -lgmpestavam falhando, então tive que "cygwin-setup" libcrypt-devele libgmp-devel.

informação relacionada