GLib 컴파일 오류 (ffi.h), libffi가 설치됨


119

성공적인 구성 후 snipped로 종료하십시오.

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

1
ffi에 대한 내용을 보려면 config.log를 확인해야합니다. 찾을 수 없지만 스크립트에 버그가 있고 오류와 함께 종료되지 않습니다. 새로운 multilib include 디렉토리로 인해 혼동 될 수 있습니다. 또한 적절한 -I 스위치가 컴파일러에 전달되었는지 확인하십시오.
Jester

답변:


270

다음을 사용하는 Debian 기반 Linux OS가있는 경우 apt-get:

sudo apt-get install libffi-dev

Redhat 기반 OS :

yum install libffi-devel

Alpine Linux 사용 :

apk add libffi-dev

6
또는 Redhat 기반 OS를 사용하는 경우 yum install libffi-devel
Yonatan

4
32 비트 용 64 비트 시스템에서 glib를 크로스 컴파일하는 경우 libffi-dev:i386. 저에게는 분명하지 않았습니다. :)
Björn Lindqvist

6

소스 코드에서 libffi 3.0.9를 compling 때,이 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

3

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



1

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

필요한 파일을 찾을 수있는 위치에 넣은 후 제대로 작동합니다.

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

3
심볼릭 링크가 복사본보다 훨씬 부드럽 지 않습니까?
CousinCocaine
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.