Ошибка установки Gem: сначала необходимо установить средства разработки

Я попытался установить драгоценный камень " sinatra-websocket ", но когда я запустил gem install sinatra-websocket, я получил эту ошибку...

ERROR: Failed to build gem native extension

... вместе с...

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

Здесь файл mkmf папке C:\Ruby193\lib\ruby\gems\1.9.1\gems\thin-1.6.3\ext\thin_parser выглядит так:

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

Я использую Windows 7.

Почему я получаю сообщение об ошибке? Там строка с сообщением "не удалось создать Makefile...", но это уместно?

Ответ 1

Вы запустили:

xcode-select --install

Чтобы установить инструменты разработчика Xcode?

Ответ 2

Похоже, что вам не хватает devtools для рубина.

Вы можете получить их здесь: http://rubyinstaller.org/downloads/ просто прокрутите вниз до "Development Kit".

Загрузите и извлеките это в любом месте. Откройте папку в командной строке и запустите ruby dk.rb init. Это создаст файл конфигурации, в котором подробно описаны ваши рубиновые установки. Проверьте этот файл конфигурации, прежде чем продолжить поиск путей к рубиновой установке.

Теперь запустите ruby dk.rb install. Это установит комплект разработчика.

Перезапустите командную строку и попробуйте снова установить драгоценный камень.

Ответ 3

У меня была эта проблема на MacOS Mojave (10.14.1). Установка последней ruby через Homebrew и установка некоторых переменных env решили эту проблему для меня:

export PATH="/usr/local/opt/ruby/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"

Ответ 4

Если вы работаете в Mac OS 10.14 (Mojave), попробуйте

cd  /Library/Developer/CommandLineTools/Packages/;
open macOS_SDK_headers_for_macOS_10.14.pkg

Благодарим Роя Хуанга. Ссылка: fooobar.com/questions/90526/...

Ответ 5

Это сработало для меня
"sudo xcode-select -switch/"

Ответ 6

Это означает, что у вас не установлены инструменты компилятора. Для Mac xcode-select --install устанавливает их. Для Linux или других систем вы можете использовать менеджеры пакетов, например, apt install cmake должен установить необходимые инструменты сборки для систем, имеющих apt менеджер пакетов.

Ответ 7

Если вы работаете на Mac и недавно обновили свои инструменты Xcode, выполните следующие команды:

sudo xcode-select --install
sudo xcodebuild -license