IT박스

GLib 컴파일 오류 (ffi.h)이지만 libffi가 설치되었습니다.

itboxs 2020. 7. 19. 10:50
반응형

GLib 컴파일 오류 (ffi.h)이지만 libffi가 설치되었습니다.


성공적으로 구성한 후 틈새로 종료하십시오.

gclosure.c:29:17: fatal error: ffi.h: No such file or directory
compilation terminated.

libffi가 설치되어 있고 ffi.h가 다음을 찾습니다.

/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

데비안 기반 Linux OS가있는 경우 apt-get:

sudo apt-get install libffi-dev

Redhat 기반 OS의 경우 :

yum install libffi-devel

소스 코드에서 libffi 3.0.9를 컴파일 할 때 include/Makefile.in포함 파일은에 설치됩니다 ${PREFIX}/lib/libffi-3.0.9/include directory. 나는 그에 대한 훌륭한 이유가 있다고 확신하지만, 그것에 의해 화가납니다.

이 줄은 libffi를 컴파일 할 때 수정합니다 :

/bin/perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in

지금에 설치 될 포함 ${PREFIX}/include되는, /usr/local/include나를 위해.

내 전체 레시피는 다음과 같습니다.

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

configure에서 ffi.h의 위치에 대해 LIBFFI_CFLAGS를 수동으로 설정하여 해결


GCC 버전을 확인하고 데비안 버그 아카이브에서이 항목을 확인하십시오 : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869

그것은 내 특정 문제에 대한 최종 해결책이었습니다 (보고 한 것과 정확히 같았지만 위의 해결책으로는 해결할 수 없었습니다) ... 내 문제는 LIBFFI와 전혀 관련이 없습니다.


오래된 실이지만 어쨌든 ...

필요한 파일을 찾을 수있는 위치에 놓은 후 작동시킵니다.

cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/
cp /usr/lib/libffi.so /usr/local/lib/

참고 URL : https://stackoverflow.com/questions/12982486/glib-compile-error-ffi-h-but-libffi-is-installed

반응형