Après une configuration réussie, faire des sorties avec snipped
gclosure.c:29:17: fatal error: ffi.h: No such file or directory
compilation terminated.
J'ai libffi installé, et localisez ffi.h donne:
/home/luca/gcc4.6/gcc-4.6.0/libffi/include/ffi.h.in
/usr/include/x86_64-linux-gnu/ffi.h
/usr/share/doc/ghc-doc/html/users_guide/ffi.html
/usr/share/doc/libffi5/html/Using-libffi.html
Si vous avez un système d'exploitation Linux basé sur Debian avec apt-get
:
Sudo apt-get install libffi-dev
Avec un système d'exploitation Redhat-base:
yum install libffi-devel
Lorsque vous complétez libffi 3.0.9 à partir du code source, le include/Makefile.in
installe l'inclus dans le ${PREFIX}/lib/libffi-3.0.9/include directory
. Je suis sûr qu'il y a une Merveilleuse raison à cela, mais cela m'agace.
Cette ligne le corrige lors de la compilation de libffi:
/bin/Perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in
Le includes va maintenant être installé dans ${PREFIX}/include
, lequel est /usr/local/include
pour moi.
Ma recette complète est:
cd /var/tmp
rm -rf libffi-3.0.9
untgz /usr/local/src/utils/libffi-3.0.9.tar.gz
cd libffi-3.0.9
/bin/Perl -pe 's#^AM_CFLAGS = .*#AM_CFLAGS = -g#' -i Makefile.in
/bin/Perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in
./configure --prefix=/usr/local \
--includedir=/usr/local/include
gmake
gmake install
Résolu en définissant manuellement LIBFFI_CFLAGS pour l'emplacement de ffi.h dans configure
Vérifiez votre version de GCC et notez cette entrée dans l'archive des bogues Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869
C'était la solution finale à mon problème particulier (cela ressemblait exactement à ce que vous rapportez, mais vous ne pouviez pas le résoudre avec la solution ci-dessus) ... mon problème n'avait rien à voir avec LIBFFI.
Un vieux fil, mais quand même ...
Après avoir placé les fichiers requis dans un emplacement où ils pourraient être trouvés, je l'ai fait fonctionner:
cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/
cp /usr/lib/libffi.so /usr/local/lib/