GLib编译错误(ffi.h),但安装了libffi
成功configuration后,退出并剪切
gclosure.c:29:17: fatal error: ffi.h: No such file or directory compilation terminated. 我已经安装了libffi,并findffi.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 
	
 如果你有一个apt-get的基于Debian的Linux操作系统: 
 sudo apt-get install libffi-dev 
使用基于Redhat的操作系统:
 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 
在configuration中通过手动设置LIBFFI_CFLAGS获取ffi.h的位置来解决
检查你的GCC版本,并在Debian Bug Archive中注明这个条目: http : //bugs.debian.org/cgi-bin/bugreport.cgi? bug= 523869
这是我的特定问题的最终解决scheme(它看起来完全像你所报告的,但不能用上面的解决scheme来解决)…我的问题与LIBFFI完全没有关系。
一个古老的线程,但无论如何…
将所需的文件放在可以find的位置后,我就可以工作了:
 cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/ cp /usr/lib/libffi.so /usr/local/lib/