2015-01-04 3 views
9

installieren Ich habe versucht, den Edelstein ‚sinatra-websocket‘ installieren, aber wenn ich gem install sinatra-websocket lief, habe ich diesen Fehler ...Gem Installationsfehler: Sie müssen Entwicklungstools erste

ERROR: Failed to build gem native extension

... zusammen mit ...

C:/Ruby193/bin/ruby.exe extconf.rb 
checking for main() in -lc... *** 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=C:/Ruby193/bin/ruby 
    --with-thin_parser-dir 
    --without-thin_parser-dir 
    --with-thin_parser-include 
    --without-thin_parser-include=${thin_parser-dir}/include 
    --with-thin_parser-lib 
    --without-thin_parser-lib=${thin_parser-dir}/lib 
    --with-clib 
    --without-clib 
C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:461:in `try_link0' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:476:in `try_link' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:619:in `try_func' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:845:in `block in have_library' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:280:in `postpone' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for' 
    from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:840:in `have_library' 
    from extconf.rb:4:in `<main>' 

Hier ist, was die mkmf Datei in C:\Ruby193\lib\ruby\gems\1.9.1\gems\thin-1.6.3\ext\thin_parser wie folgt aussieht:

"gcc -o conftest -IC:/Ruby193/include/ruby-1.9.1/i386-mingw32 -IC:/Ruby193/include/ruby-1.9.1/ruby/backward -IC:/Ruby193/include/ruby-1.9.1 -I. -DFD_SETSIZE=2048 -DFD_SETSIZE=2048 -O3 -fno-omit-frame-pointer -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c -L. -LC:/Ruby193/lib -L. -march=i486 -lmsvcrt-ruby191 -lshell32 -lws2_32 -limagehlp -lshlwapi " 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: #include <winsock2.h> 
4: #include <windows.h> 
5: int main(int argc, char **argv) 
6: { 
7: return 0; 
8: } 
/* end */ 

Ich verwende Windows 7.

Warum erhalte ich den Fehler? Es gibt eine Zeile, die besagt "Makefile konnte nicht erstellt werden ...", aber ist das relevant?

+0

Die Datei mkmf.log befindet sich im Installationsverzeichnis des Gems. – Emanuel

+0

@ siaw23 Ich habe den Inhalt der Datei hinzugefügt –

+0

Haben Sie einen C-Compiler installiert? – iain

Antwort

20

Haben Sie laufen:

xcode-select --install 

die Xcode Entwickler-Tools zu installieren?

+14

Ich glaube nicht, dass die "Entwicklungswerkzeuge", auf die im Fehler verwiesen wird, etwas mit xcode zu tun haben, besonders wenn man bedenkt, dass dies unter Windows geschieht. –

+3

Diese Arbeit für mich auf Mac (Mavericks). danke – Liko

+0

Ich zog auf eine neue Maschine und vergaß xcode Kommandozeilen-Tools als separate Installation zu XCode. Das half, danke. Ich hatte Probleme mit 'Gem Install Puma' –

10

Klingt, als würden Sie die Devtools für Ruby vermissen.

Sie können sie hier erhalten: http://rubyinstaller.org/downloads/ Scrollen Sie einfach nach "Development Kit".

Downloaden und extrahieren Sie das, wo Sie wollen. Öffnen Sie den Ordner in der Eingabeaufforderung und führen Sie ruby dk.rb init. Dadurch wird eine Konfigurationsdatei erstellt, die deine Ruby-Installationen detailliert beschreibt. Überprüfen Sie diese Konfigurationsdatei, bevor Sie fortfahren zu bestätigen, dass die Pfade zu Ihrer Ruby-Installation korrekt sind.

Jetzt ruby dk.rb install ausführen. Dies wird das Entwicklungskit installieren.

Starten Sie die Eingabeaufforderung erneut und versuchen Sie, den Edelstein erneut zu installieren.