как сообщить cpanm Image::Magick о расположении заголовка?

В OS X cpanm Image::Magick терпит неудачу с

Magick.xs:60:10: фатальная ошибка: файл 'magick/MagickCore.h' не найден

#include ‹ magick/MagickCore.h›

Хотя файл есть. (Это место от меня, чтобы показать его здесь.)

Как мне указать cpanm и/или Image::Magick, где найти эти заголовки?

(IM устанавливается из исходников.)


person Lars    schedule 21.10.2012    source источник


Ответы (3)


Обходной путь: загрузите модуль, отредактируйте Makefile.PL (добавьте заголовочный каталог для включения), сделайте, сделайте установку, как написано на домашней странице imagemagick.

person Lars    schedule 21.10.2012
comment
Я получил аналогичную ошибку во время установки Image::Magick с использованием оболочки CPAN. Нужно ли повторно загружать исходные файлы, а затем вносить изменения? Если нет, не могли бы вы сказать мне, где присутствует Makefile.PL для внесения этих изменений. - person Naveen; 28.12.2012
comment
Я не знаю, нужно ли вам повторно загружать, файлы, которые вы получили, могут быть уже в вашей системе, хотя я не знаю, где. Если вы загружаете с веб-сайта CPAN с помощью веб-браузера, извлеките содержимое файла, и в самой верхней папке извлеченных файлов, где есть файлы, есть файл Makefile.PL. - person Lars; 04.01.2013

Может быть, немного поздно, но если бы нашел способ установить Image::Magick.

  1. Попробуйте установить Image::Magick через cpanm

    cpanm -n Image::Magick
    
  2. Найдите каталог, в который cpanm загрузил PerlMagick-6.89-1.tar.gz.

  3. Там будет каталог PerlMagick-6.89-1.
  4. В этом каталоге откройте Makefile.PL и найдите строку, начинающуюся с «my $INC_magick».
  5. замените следующие строки этим содержимым:

    my $INC_magick = '-I/usr/local/Cellar/imagemagick@6/6.9.10-6/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick-6"';
    my $LIBS_magick = '-L/usr/local/lib -lMagickCore-6.Q16 -lperl -lm';
    my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/freetype2 -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
    my $LDFLAGS_magick   = "-L/usr/local/Cellar/imagemagick\@6/6.9.10-6/lib -lMagickCore-6.Q16 $Config{'ldflags'} ";
    my $LDDLFLAGS_magick = "-L/usr/local/Cellar/imagemagick\@6/6.9.10-6/lib -lMagickCore-6.Q16 $Config{'lddlflags'} ";
    

Мне пришлось заменить значения переменных $INC_magick, $LDFLAGS_magick, $LDDLFLAGS_magick

  1. После редактирования запустить

    perl Makefile.PL
    make
    make install
    

Если вы используете perlbrew, обязательно сначала активируйте нужную установку perl.

person Martin Radile    schedule 20.07.2018

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

Я смог решить эту проблему с помощью нового ImageMagick, установленного через homebrew (brew install imagemagick, который установил версию 6.9.5-3), затем запустил cpan и установил пакет JCRISTY/PerlMagick-6.89-1.tar.gz.

Он не работает в тестовом разделе. Таким образом, я проанализировал, какие тесты проваливаются, и решил немного схитрить (мне не нужны все функции ImageMagick). Я вручную редактировал файлы тестов (используйте look Image::Magick, чтобы попасть в разархивированный пакет) — мне потребовалось полностью закомментировать тест для input.miff (reference/filter/Segment.miff) в t/filter.t и тесты для MPEG читать в t/mpeg/read.t. Затем cpan наконец может обработать Image::Magick.

Я провел свои собственные тесты на наборе изображений GIF и PNG, и они в порядке. Надеюсь, это поможет кому-то.

person dond    schedule 24.07.2016