Ошибка при установке зависимостей для PyGTK в Mac OS 10.6.3 - PullRequest
0 голосов
/ 16 мая 2010

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

  • глиб 2.25.5
  • Gettext-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 ]

2 голосов
/ 19 июля 2011

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

Перейдите в папку «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

0 голосов
/ 09 декабря 2010

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

0 голосов
/ 09 декабря 2010

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

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

0 голосов
/ 11 августа 2010

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

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

Введите sudo port install gtk2 для установки GTK + 2. MacPorts найдет и установит все зависимости.

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

...