Ошибка при установке зависимостей для PyGTK в Mac OS 10.6.3

Я попытался установить следующие зависимости для PyGTK 2.16.0 (набор инструментов Python GIMP) в Mac OS 10.6.3:

  • бойкая 2.25.5
  • получитьтекст-0.18
  • либиконв-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.

Может ли кто-нибудь объяснить ошибку более подробно, и как ее исправить?


person Winston C. Yang    schedule 16.05.2010    source источник


Ответы (4)


Хотя это старый вопрос, я все же хочу поделиться решением, которое сработало для меня.

Перейдите в папку «glib» (просто glib, та, что ВНУТРИ основной исходной папки glib) и откройте «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

person Gurpreet Singh    schedule 19.07.2011

Причина появления сообщения об ошибке заключается в том, что если вы собираете glib для текущей (~10.6.3) установленной в системе версии libiconv в OS X, вам необходимо передать --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 вам не нужно указывать pas --with-libiconv=gnu для настройки glib, поэтому теперь вы можете продолжить процесс сборки GTK-OSX, повторно запустив этап настройки glib.

person j b    schedule 09.12.2010

Поскольку я видел много сообщений о том, что менеджер пакетов MacPorts менее надежен, чем менеджер пакетов 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.

Я считаю, что «инвестировать» в менеджер пакетов просто необходимо, если вы планируете использовать программы с открытым исходным кодом.

person Eric O Lebigot    schedule 09.12.2010

На Mac, если вы хотите установить GTK+, PyGTK или некоторые другие программы, вы можете загрузить MacPorts.

В терминале введите port search gtk для поиска программ, связанных с GTK+. Вам потребуется подключение к Интернету.

Введите sudo port install gtk2, чтобы установить GTK+2. MacPorts найдет и установит любые зависимости.

Введите port installed, чтобы увидеть программы, которые вы установили с помощью MacPorts.

person Winston C. Yang    schedule 11.08.2010