web-dev-qa-db-fra.com

ERREUR: erreur lors de l'installation de ffi: ERREUR: échec de la création de l'extension native gem

DevKit est installé et a relancé l’installation 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
_________________________________________________________________________________

Vous ne savez pas comment traiter ce problème. Aide aimablement.

15
user1007520

La version 1.0.10 présente des problèmes de compilation sous Windows.

Vous pouvez utiliser le 1.0.9

gem install ffi --version='1.0.9'
15
tommasop
Sudo apt-get install libffi-dev

Cela a fonctionné pour moi

10
sahilbathla

Le gem install ffi échoue car ce dernier essaie de créer une copie groupée de libffi, ce qui ne fonctionne pas car on suppose que/usr/bin/env existe et une copie trop ancienne de libffi.

Cependant, vous pouvez construire la gif ffi contre le système libffi - installer les paquets:

apt install clang make Ruby-dev libffi-dev

Après cela, le bijou devrait construire:

gem install ffi
10
ElS arekh

Notez que l'installation de la version 1.0.9 ne sera pas suffisante si votre bundler continue d'essayer de sortir et de récupérer la dernière version. Dans votre gemfile, vous voudrez aussi mettre:

gem 'ffi', '1.0.9'

Cela devrait satisfaire la dépendance de la pierre précieuse qui vous est demandée et vous permettre de vous lancer.

7
DVG

Pour moi, le correctif fonctionnait dans cet ordre. Je ne suis pas sûr de ce que tout était pertinent, mais cela a fonctionné:

gem install ffi --version '1.0.9'

Ce qui précède a échoué, mais j'ai pu exécuter avec succès:

gem install bundler

...et par la suite:

gem install ffi

... qui a la dernière version (1.6.0 au moment de l'écriture de ceci) et l'a installée avec succès.

5
Grinn

lorsque les étapes ci-dessus sont suivies, le message suivant peut apparaître.

$ 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`

Dans ce cas, vous pouvez exécuter la commande 'bundle update ffi' et l'erreur sera résolue.

5
maniempire

L'installation de 'osx-gcc-installer' a fonctionné pour moi: (osx 10.8)

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

4
wantrapreneur

tu en as besoin, 

apt-get install Ruby2.2-dev
3
Cosmo Arun

Copié de un autre post :

Comme indiqué dans Problème lors de l'installation d'ImageMagick et de rmagick sur Mountain Lion , ffi semble être configuré pour rechercher «gcc-4.2». Ainsi, une fois que j'ai mis à jour mes outils de ligne de commande Apple Je peux ou non avoir besoin de le faire), j’ai créé un lien symbolique pour rendre heureuse la configuration de l’installation ffi:

Sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
2
David Vezzani

Placez DevKit devant votre PATH et réinstallez-le à partir de l'invite de commande Windows.

0
konyak

J'ai le même problème. Dans mon cas, je n'ai pas installé le DevKit, qui peut être trouvé: http://rubyinstaller.org/downloads/ . Après l’installation de DevKit, suivez simplement les instructions https://github.com/oneclick/rubyinstaller/wiki/development-kit et c’est enfin opérationnel.

0
Erwin Kaddy

J'ai dû installer automake pour le faire fonctionner. Travaillé à la fois sur Mac OSX et sur Ubuntu (machine CI).