Ответ 1
Вы запустили:
xcode-select --install
Чтобы установить инструменты разработчика Xcode?
Я попытался установить драгоценный камень " 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...", но это уместно?
Вы запустили:
xcode-select --install
Чтобы установить инструменты разработчика Xcode?
Похоже, что вам не хватает devtools для рубина.
Вы можете получить их здесь: http://rubyinstaller.org/downloads/ просто прокрутите вниз до "Development Kit".
Загрузите и извлеките это в любом месте. Откройте папку в командной строке и запустите ruby dk.rb init
. Это создаст файл конфигурации, в котором подробно описаны ваши рубиновые установки. Проверьте этот файл конфигурации, прежде чем продолжить поиск путей к рубиновой установке.
Теперь запустите ruby dk.rb install
. Это установит комплект разработчика.
Перезапустите командную строку и попробуйте снова установить драгоценный камень.
У меня была эта проблема на 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"
Если вы работаете в Mac OS 10.14 (Mojave), попробуйте
cd /Library/Developer/CommandLineTools/Packages/;
open macOS_SDK_headers_for_macOS_10.14.pkg
Благодарим Роя Хуанга. Ссылка: fooobar.com/questions/90526/...
Это сработало для меня
"sudo xcode-select -switch/"
Это означает, что у вас не установлены инструменты компилятора. Для Mac xcode-select --install
устанавливает их. Для Linux или других систем вы можете использовать менеджеры пакетов, например, apt install cmake
должен установить необходимые инструменты сборки для систем, имеющих apt менеджер пакетов.
Если вы работаете на Mac и недавно обновили свои инструменты Xcode, выполните следующие команды:
sudo xcode-select --install
sudo xcodebuild -license