4

Я пытаюсь собрать ImageMagick 6.8.0-5 на OSX Lion с поддержкой libpng. Я просто использую стандартную процедуру ./configure make make install.

Мне удается компилировать, когда я не ссылаюсь на libpng.

./configure --with-png=no
make

Тем не менее, я получаю сообщение об ошибке при попытке добавить поддержку libpng. (Libpng-1.5.13)

./configure --with-png=yes
make

Ошибка кажется ошибкой компоновщика.

/usr/bin/nm: no name list
ld: warning: cannot export hidden symbol _SyncImagePixelCache from magick/.libs/magick_libMagickCore_la-cache.o
ld: warning: cannot export hidden symbol _ResetQuantumState from magick/.libs/magick_libMagickCore_la-quantum.o
Undefined symbols for architecture x86_64:
  "_png_set_check_for_invalid_index", referenced from:
      _WriteOnePNGImage in magick_libMagickCore_la-png.o
      _ReadOnePNGImage in magick_libMagickCore_la-png.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [magick/libMagickCore.la] Error 1
make: *** [all] Error 2

Я не изменил другие параметры для настройки.

Как я могу это исправить, чтобы добавить поддержку libpng?

3 ответа3

2

Вам нужно будет указать ImageMagick, где найти libpng. К счастью, libpng поставляется с конфигурационным скриптом под названием «libpng-config».

Вы можете получить опцию link-library из вашей локальной установки libpng с флагом --L_opts .

libpng-config --L_opts

Это вернет что-то вроде -L/usr/local/lib. Установите конфигурацию LDFLAGS ImageMagick в соответствии с вашей библиотекой libpng.

# Use the returned value for the LDFLAGS
./configure LDFLAGS='-L/usr/local/lib'

Если libpng-config возвращается с сообщением «команда не найдена», вам необходимо убедиться, что ваш libpng установлен правильно и может быть расположен в вашей оболочке. Зачастую это может быть так просто, как добавление пользовательского пути к переменной PATH.

export PATH="$PATH:/usr/local/bin"
1

У меня были проблемы с получением ImageMagick для правильной сборки с поддержкой png на 10.10, поэтому я просто использовал установщик с http://cactuslab.com/imagemagick/, который включает поддержку png. (устанавливается в /opt)

0

Более новые версии ImageMagick, кажется, полагаются на «pkg-config», чтобы найти вашу собственную сборку libpng. Я только что установил pkg-config и установил PKG_CONFIG_LIBRARY =/path/to/my/libpng-version, чтобы он работал.

HTH, Аксель.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .