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

Gtk GLib编译错误(ffi.h),但已安装libffi,gtk,glib,Gtk,Glib,成功配置后,使用“剪断”退出 我已安装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 通过在配置中手动设置ffi.h位置的LIBFFI_CF

成功配置后,使用“剪断”退出

我已安装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

通过在配置中手动设置ffi.h位置的LIBFFI_CFLAGS来解决此问题。请检查您的GCC版本,并在Debian Bug归档中记录此条目:


这是我特定问题的最终解决方案(看起来与您报告的完全相同,但无法用上述解决方案解决)。。。我的问题与LIBFFI没有任何关系。

如果您有一个基于Debian的Linux操作系统,带有
apt get

sudo apt-get install libffi-dev
使用Redhat基本操作系统:

yum install libffi-devel
对于Alpine Linux:

apk add libffi-dev

一根旧线,但无论如何

在将所需文件放在可以找到它们的位置后,我使其正常工作:

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

从源代码编译libffi 3.0.9时,
include/Makefile.in
${PREFIX}/lib/libffi-3.0.9/include目录中安装include。我相信这是一个很好的理由,但我对此感到恼火

这一行在编译libffi时修复了它:

/bin/perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in
include现在将安装在
${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

您应该检查config.log以了解它对ffi的说明。也许它找不到它,但是脚本有缺陷,不会带着错误退出。它可能被新的multilib include目录弄糊涂了。还要检查是否将适当的-I开关传递给编译器。符号链接不是比副本更温和吗?或者,如果您使用的是基于Redhat的操作系统,请使用yum install libffi-develNote,如果您在64位系统上交叉编译32位glib,则需要安装
libffi-dev:i386
。这对我来说并不明显
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