配置gobject-introspection以支持pygobject和pygtk的问题

0 投票
3 回答
2338 浏览
提问于 2025-04-16 22:28

我正在尝试在我的Mac上安装pygtk,结果它让我先安装pygobject,然后又让我去安装gobject-introspection。在安装的过程中,我遇到了一个问题:在配置的时候出现了这个错误:

检查FFI...没有
检查ffi.h...配置错误:找不到ffi.h

请帮帮我,因为我需要安装gtk。

/usr/include/ffi->ffi.h的位置

提前谢谢你!

3 个回答

0

ffi.h 是由 libffi-dev 这个软件包提供的,而这个软件包实际上是来自 gcc 源代码包的。大多数情况下,它是可以在 Linux 系统上找到的。

1

我最开始在组装GLib的时候发现了这个编译失败的问题(我尝试的所有版本都比2.28.7新),后来在使用gobject时又遇到了这个问题;看起来这和其他几个软件包的构建失败也有关系:

我尝试按照这些讨论中的建议去做(因为讨论的解决方案大致相同),但都没有成功。

最终的解决方案:完全重新编译和安装GCC(4.7.2)

为什么编译GCC(4.7.2)能解决这个问题?

我在Debian的错误归档中找到了这个帖子:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869

在阅读时,我注意到我的系统使用的是一个受影响的GCC版本来编译我的各种源代码(来自一台老旧笔记本上的FC9安装)。

我选择4.7.2作为目标,因为在写这篇文章时,它是稳定版本中最新的构建。我相对确定,如果你在系统上简单安装一个较新的GCC,结果也会一样(只要你安装的是4.3.5-4或更高版本),但我没有测试过,因为FC9的安装上显然没有这样的软件包。通过软件包安装有很多潜在的好处,除了简单之外,具体请看下面的内容。

重要提示:如果你打算编译GCC,可能需要一个正常工作(且更新)的glibc环境…… 请在开始手动过程之前了解这个复杂性: http://cygwin.com/ml/libc-alpha/2012-02/msg00646.html

解决方法是找到一个比上面文章中提到的提交早的Glibc版本(我选择了2.14),在安装了这个版本后编译GCC 4.5(我选择了4.5.3,因为它与glibc 2.14发布得比较接近),然后再用当前的Glibc和GCC重新开始这个过程……祝你好运!

2

试试这个:

export FFI_CFLAGS=/usr/include
export FFI_LIBS=/usr/lib

然后

./configure

希望这能解决你的问题。

撰写回答