2015-01-04 30 views
9

Próbowałem instalacji gem „sinatra-websocket”, ale kiedy wpadłem gem install sinatra-websocket, mam ten błąd ...błędu instalacja Gem: Musisz zainstalować narzędzia programistyczne pierwsze

ERROR: Failed to build gem native extension

... wraz z ...

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>' 

Oto co plik w C:\Ruby193\lib\ruby\gems\1.9.1\gems\thin-1.6.3\ext\thin_parsermkmf wygląda następująco:

"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 */ 

Używam systemu Windows 7.

Dlaczego pojawia się błąd? Istnieje wiersz z informacją, że "nie można utworzyć pliku Makefile ...", ale czy jest to istotne?

+0

Plik mkmf.log można znaleźć w katalogu instalacyjnym klejnotu. – Emanuel

+0

@ siaw23 Dodałem zawartość pliku –

+0

Czy masz zainstalowany kompilator C? – iain

Odpowiedz

20

Czy uruchomić:

xcode-select --install 

Aby zainstalować narzędzia Xcode Developer?

+14

Nie sądzę, że "narzędzia programistyczne" odwołujące się do błędu mają cokolwiek wspólnego z xcode, szczególnie biorąc pod uwagę, że jest to w systemie Windows. –

+3

Ta praca dla mnie na mac (indywidualne). dzięki – Liko

+0

Przeniosłem się na nową maszynę i zapomniałem o narzędziach wiersza poleceń xcode jako osobnej instalacji do XCode. To pomogło dzięki. Miałem problemy z "PUMP zainstalować Puma" –

10

Wygląda na to, że brakuje ci devtooli na ruby.

Możesz pobrać je tutaj: http://rubyinstaller.org/downloads/ po prostu przewiń do "Zestawu programistycznego".

Pobierz i rozpakuj je w dowolne miejsce. Otwórz folder w wierszu polecenia i uruchom ruby dk.rb init. Spowoduje to utworzenie pliku konfiguracyjnego opisującego twoje instalacje ruby. Sprawdź ten plik konfiguracyjny przed kontynuowaniem potwierdzenia, że ​​ścieżki do twojej instalacji ruby ​​są poprawne.

Teraz uruchom ruby dk.rb install. Spowoduje to zainstalowanie zestawu rozwojowego.

Ponownie uruchom wiersz polecenia i spróbuj zainstalować klejnot ponownie.