Не могу настроить Mapnik из-за icuuc

Пытаюсь скомпилировать Mapnik на OSX 10.8

Итак, после того, как я клонировал репозиторий Github, я запускаю команду configure следующим образом: ./configure и получаю сообщение об ошибке:
Checking for C++ library icuuc... no
Could not find required header or shared library for icuuc

и позже: Exiting... the following required dependencies were not found:
- icuuc (ICU C++ library | configure with ICU_LIBS & ICU_INCLUDES or use ICU_LIB_NAME to specify custom lib name | more info: http://site.icu-project.org/)

Поиск решения в области устранения неполадок Mapnik: https://github.com/mapnik/mapnik/wiki/InstallationTroubleshooting

Говорит: Solution: If g++ is available then ICU must be in a custom location so set the paths to the libs and includes - ie. ICU_LIBS=/usr/local/lib and ICU_INCLUDES=/usr/local/include.

Запустив g++ из командной строки, я получаю: i686-apple-darwin11-llvm-g++-4.2: no input files

Итак, это означает, что g++ доступен, но я понятия не имею, как установить пути, чтобы configure мог их найти.

Библиотеки ICU были установлены по умолчанию или с доморощенным, не уверен, что.

terminal: brew install icu4c
Warning: icu4c-51.1 already installed

Поиск каталога установки icu4c:
terminal: mdfind icu4c
/usr/local/Cellar/icu4c


person Levi Roberts    schedule 14.08.2013    source источник
comment
У вас установлены библиотека ICU и заголовки?   -  person Etan Reisner    schedule 14.08.2013
comment
Да, но у меня такое ощущение, что их не найти или они находятся в каталогах по умолчанию. Это не первый раз, когда я сталкиваюсь с проблемами с ICU. Отредактирован вопрос, чтобы показать, какой ICU установлен.   -  person Levi Roberts    schedule 14.08.2013
comment
Двоичный файл не обязательно указывает на библиотеку (сторона разработки) или устанавливаемые заголовки (я ничего не знаю о brew, так что, возможно, с brew это происходит, если brew всегда устанавливает все три вместе). В любом случае, если правильная часть установлена ​​в /usr/local/Cellar, а g++ не настроен для просмотра по умолчанию, вам просто нужно экспортировать эти флаги среды ICU_*, установленные в нужные места в вашей оболочке, перед запуском configure.   -  person Etan Reisner    schedule 14.08.2013
comment
На самом деле это был каталог, в котором был установлен icu4c, и там были подкаталоги lib, include, bin и т. д. Так что вы правы, что configure не смотрит туда, но я, честно говоря, понятия не имею, как «экспортировать эти флаги среды ICU_*». Я пытался это сделать в терминале перед запуском ./configure безуспешно.   -  person Levi Roberts    schedule 14.08.2013
comment
Ошибка, которую вы указали в вопросе, дает вам примеры значений. Вам просто нужно изменить их, чтобы они указывали на правильные пути для вашей системы (вероятно, /usr/local/Cellar/icu4c/lib и /usr/local/Cellar/icu4c/include), а затем export ICU_LIBS ICU_INCLUDES.   -  person Etan Reisner    schedule 14.08.2013
comment
Например, я выполнил следующее с тем же результатом. ICU_LIBS=/usr/local/Cellar/icu4c/51.1/lib‹br› ICU_INCLUDES=/usr/local/Cellar/icu4c/51.1/include ./configure   -  person Levi Roberts    schedule 14.08.2013
comment
давайте продолжим обсуждение в чате   -  person Levi Roberts    schedule 14.08.2013


Ответы (3)


Согласно нашему обсуждению и моему последнему комментарию, может работать что-то вроде следующего.

export ICU_LIBS=/usr/local/Cellar/icu4c/lib
export ICU_INCLUDES=/usr/local/Cellar/icu4c/include
./configure
person Etan Reisner    schedule 14.08.2013
comment
Пытался запустить эти команды с исправленным путем (найденным путем перехода в каталог с помощью компакт-диска), но ./configure по-прежнему не может их найти. - person Levi Roberts; 14.08.2013
comment
Даю ответ этому парню, потому что он был очень полезен здесь и в чате. Я решил проблему, скомпилировав libicuuc из исходников, а затем выпустив make install - person Levi Roberts; 15.08.2013

Вы можете добавить путь к ICU_LIB/INCLUDE в команду configure:

./configure ICU_INCLUDES=/usr/local/Cellar/icu4c/include ICU_LIBS=/usr/local/Cellar/icu4c/lib

И для получения дополнительной помощи о настройке того, какие параметры принимаются, выполните следующие действия:

./configure --help 

Для справки по установке вы можете проверить это: https://github.com/mapnik/mapnik/blob/v2.2.0/INSTALL.md

person skyvin    schedule 22.08.2013
comment
Это правильный ответ. Mapnik ожидает в качестве аргументов параметры конфигурации для таких вещей, как пути icu. - person Dane; 05.09.2013

Если вы обнаружите такие же ошибки:

Checking for C++ library XXX... no

Следуйте команде

sudo apt-get install g++ libXXX-dev

Используя подсказки (кнопка TAB), вы можете увидеть, какие XXX библиотеки у вас есть.

sudo apt-get install libXXX(press double TAB)
person Evgeniy Tkachenko    schedule 09.11.2015