GLib编译错误(ffi.h),但安装了libffi

时间:2012-10-19 21:08:20

标签: gtk glib

配置成功后,使用剪切

退出
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

5 个答案:

答案 0 :(得分:267)

如果你的基于Debian的Linux操作系统有apt-get

sudo apt-get install libffi-dev

使用基于Redhat的操作系统:

yum install libffi-devel

答案 1 :(得分:6)

从源代码编译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

答案 2 :(得分:3)

通过在configure中为ffi.h的位置手动设置LIBFFI_CFLAGS解决此问题

答案 3 :(得分:2)

检查您的GCC版本并在Debian Bug存档中记下此条目:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869

这是我特定问题的最终解决方案(它看起来与您报告的完全相同,但无法通过上述解决方案解决)...我的问题根本与LIBFFI无关。

答案 4 :(得分:1)

旧线程,但无论如何......

将所需文件放在可以找到它们的位置后,我开始工作了:

cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/
cp /usr/lib/libffi.so /usr/local/lib/
相关问题