0

我尝试在 Mac OS 10.6.3 上为 PyGTK 2.16.0(Python GIMP 工具包)安装以下依赖项:

  • 油嘴滑舌 2.25.5
  • 获取文本-0.18
  • libiconv-1.13.1

当我尝试安装 glib 时,我收到以下错误消息:

gconvert.c:55:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv

libiconv网页讨论了 gettext 和 libiconv 之间的循环依赖关系——构建一个,然后构建另一个,然后再次构建第一个。我试图这样做,尽管可能不正确。(以下工作是否有效:make distclean; ./configure; make; sudo make install?)

一个帖子的作者也遇到了同样的问题,他通过安装libiconv-1.13.1解决了。

谁能更详细地解释这个错误,以及如何纠正它?

4

4 回答 4

2

虽然这是一个老问题,但仍然想分享对我有用的解决方案。

导航到“glib”文件夹(只是普通的 glib,主 glib 源文件夹的 INSIDE),然后使用您喜欢的编辑器打开“gconvert.c”。

#if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H)
#error GNU libiconv in use but included iconv.h not from libiconv
#endif

#if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)
#error GNU libiconv not in use but included iconv.h is from libiconv
#endif

替换最后 3 行,如下所示:

#if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H)
#error GNU libiconv in use but included iconv.h not from libiconv
#endif

#if !(defined(__APPLE__) && defined(__LP64__)) && !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)
#error GNU libiconv not in use but included iconv.h is from libiconv
#endif

资料来源: http ://letsneverdie.net/blog/?p=75

于 2011-07-19T11:38:34.033 回答
0

由于我看到很多关于 MacPorts 包管理器不如Fink包管理器可靠的报告,我建议安装 Fink,然后简单地做

fink list pygtk  # Lists all pygtk packages
fink install pygtk2-gtk-py27  # This one, or the one that corresponds to your (Fink) Python

最重要的是,Fink 让您可以访问比 MacPorts 更多的包。

如果您打算使用开源程序,我认为“投资”包管理器是必须的。

于 2010-12-09T09:51:20.877 回答
0

错误消息的原因是,如果您在 OS X 上针对当前(~10.6.3)系统安装版本的 libiconv 构建 glib,则需要将 --with-libiconv=gnu 传递给 glib 配置脚本。然而,默认情况下 GTK-OSX 构建脚本不会传递这一点。

简单的解决方案是下载最新的 libiconv ( http://www.gnu.org/software/libiconv/#downloading ),并将 GTK 安装的位置作为安装前缀传递给配置,例如:

$ cd libiconv-1.13.1/
$ ./configure --prefix=/Users/jamie/gtk/inst/
$ make && make install

使用此版本的 libiconv,您似乎不需要将 --with-libiconv=gnu 传递给 glib 配置,因此您现在可以通过重新运行 glib 配置阶段继续 GTK-OSX 构建过程。

于 2010-12-09T09:46:27.323 回答
-1

在 Mac 上,如果您想安装 GTK+、PyGTK 或某些其他程序,您可以下载MacPorts

在终端中,键入port search gtk以搜索与 GTK+ 相关的程序。您将需要互联网连接。

键入sudo port install gtk2以安装 GTK+2。MacPorts 将查找并安装任何依赖项。

键入port installed以查看您使用 MacPorts 安装的程序。

于 2010-08-11T00:17:58.080 回答