我尝试在Mac OS 10.6.3上为PyGTK 2.16.0(Python GIMP工具包)安装以下依赖项:
当我尝试安装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
?)
posting的作者有同样的问题,他通过安装libiconv-1.13.1解决了这个问题。
任何人都可以更详细地解释错误,以及如何纠正错误?
答案 0 :(得分: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
答案 1 :(得分:0)
错误消息的原因是,如果您在OS X上针对当前(~10.6.3)系统安装的libiconv版本构建glib,则需要将--with-libiconv = gnu传递给glib configure脚本。但是,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 configure,因此您现在可以通过重新运行glib configure阶段继续GTK-OSX构建过程
答案 2 :(得分: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更多的软件包。
我认为"投资"如果您打算使用开源程序,那么在软件包管理器中是必须的。
答案 3 :(得分:-1)
在Mac上,如果您要安装GTK +,PyGTK或某些其他程序,可以下载MacPorts。
在终端中,键入port search gtk
以搜索与GTK +相关的程序。您需要连接互联网。
键入sudo port install gtk2
以安装GTK + 2。 MacPorts将查找并安装任何依赖项。
键入port installed
以查看使用MacPorts安装的程序。