ОШИБКА: ошибка при установке ffi: ОШИБКА: не удалось создать собственное расширение для gem - PullRequest
15 голосов
/ 21 октября 2011

Получил установленный DevKit и перезапустил установку ffi .... Получите это как вывод:

C:\Documents and Settings\******>gem install ffi
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing ffi:
        ERROR: Failed to build gem native extension.

        C:/Ruby192/bin/ruby.exe extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include... no
checking for rb_thread_blocking_region()... yes
checking for ruby_thread_has_gvl_p()... yes
checking for ruby_native_thread_p()... yes
checking for rb_thread_call_with_gvl()... yes
creating extconf.h
creating Makefile
make
C:/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_ffi_c'"  > ffi_c-i386-mingw32.def
gcc -I. -IC:/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Ruby192/include/ruby-1
.9.1/ruby/backward -I/C/Ruby192/include/ruby-1.9.1 -I. -DRUBY_EXTCONF_H=\"extcon
f.h\"    -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -
Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -Wno-declaration-a
fter-statement   -o AbstractMemory.o -c AbstractMemory.c
In file included from AbstractMemory.c:28:0:
compat.h:65:20: warning: extra tokens at end of #ifndef directive
compat.h:69:24: warning: extra tokens at end of #ifndef directive
In file included from AbstractMemory.h:29:0,
                 from AbstractMemory.c:29:
Types.h:68:17: fatal error: ffi.h: No such file or directory
compilation terminated.
make: *** [AbstractMemory.o] Error 1 

Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.0.1
0 for inspection.
Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.0.10/ext/ffi_c/gem_m
ake.out
_________________________________________________________________________________

Не уверен, как бороться с этой проблемой. Пожалуйста, помогите.

Ответы [ 12 ]

16 голосов
/ 26 октября 2011

В версии 1.0.10 есть проблемы с компиляцией в Windows.

Вы можете использовать 1,0,9

gem install ffi --version='1.0.9'
12 голосов
/ 06 февраля 2018
sudo apt-get install libffi-dev

Это сработало для меня

11 голосов
/ 12 мая 2017

Установка gem ffi завершается неудачно из-за того, что гем пытается создать связанную копию libffi, которая не работает из-за предположений о том, что / usr / bin / env существует, и слишком старой копии libffi.

Однако вы можете собрать гем ffi для системы libffi - установите пакеты:

apt install clang make ruby-dev libffi-dev

После этого ffi gem должен собрать:

gem install ffi
7 голосов
/ 05 декабря 2011

Обратите внимание, что установки версии 1.0.9 будет недостаточно, если ваш упаковщик продолжает пытаться выйти и взять последнюю версию.В вашем гемфайле вы также захотите поместить:

gem 'ffi', '1.0.9'

Это должно удовлетворить зависимость для любого гема, запрашивающего его, и позволить вам начать работу.

6 голосов
/ 27 марта 2013

Для меня исправление работало в таком порядке. Я не уверен, что все было актуально, но это сработало:

gem install ffi --version '1.0.9'

Выше не удалось, но я мог успешно запустить:

gem install bundler

... и впоследствии:

gem install ffi

... который получил последнюю версию (1.6.0 на момент написания этой статьи) и успешно установил ее.

5 голосов
/ 21 февраля 2012

при выполнении вышеуказанных шагов может появиться следующее сообщение.

$ bundle install
Fetching source index for https://rubygems.org/
You have requested:
ffi = 1.0.9

The bundle currently has ffi locked at 1.0.11.
Try running `bundle update ffi`

В этом случае вы можете запустить команду «bundle update ffi», и ошибка будет устранена.

4 голосов
/ 27 августа 2012

Установка 'osx-gcc-installer' у меня сработала: (osx 10.8)

https://github.com/kennethreitz/osx-gcc-installer/downloads

3 голосов
/ 15 июля 2015

тебе нужно это,

apt-get install ruby2.2-dev
2 голосов
/ 28 марта 2013

Скопировано из другого поста :

Как указано в Проблема с установкой ImageMagick и rmagick на Mountain Lion , ffi, похоже, настроен на поиск «gcc-4.2», поэтому, как только я обновил инструменты командной строки Apple (что мне, возможно, и не нужно было делать), я создал символическую ссылку, чтобы сделать конфигурацию установки ffi счастливой:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
0 голосов
/ 17 февраля 2018

Мне пришлось установить automake, чтобы заставить его работать. Работал как на Mac OSX, так и на Ubuntu (машина CI).

...