2015-02-17 3 views
1

Я устанавливаю Image :: Magick через cpan, и я продолжаю получать эту ошибку. Я пробовал с этим и без него. Я обрезал журнал установки. Я читал кое-что о пропаже файла ImageMagick.h, но точно не знаю ничего другого. По-видимому, это была распространенная проблема с 2007 года.Установить Perl Image :: Magick on Fedora

[[email protected] ~]$ cpan -if Image::Magick 

"/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -typemap "/usr/share/perl5/ExtUtils/typemap" -typemap "typemap" Magick.xs > Magick.xsc && mv Magick.xsc Magick.c 
gcc -c -I/usr/local/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"/usr/include/ImageMagick-6" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/freetype2 -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -DVERSION=\"6.89\" -DXS_VERSION=\"6.89\" -fPIC "-I/usr/lib64/perl5/CORE" -D_LARGE_FILES=1 -DHAVE_CONFIG_H Magick.c 
Magick.xs: In function ‘XS_Image__Magick_ComplexImages’: 
Magick.xs:3475:5: error: unknown type name ‘ComplexOperator’ 
    ComplexOperator 
    ^
Magick.xs:3510:8: error: ‘UndefinedComplexOperator’ undeclared (first use in this function) 
    op=UndefinedComplexOperator; 
     ^
Magick.xs:3510:8: note: each undeclared identifier is reported only once for each function it appears in 
Magick.xs:3516:31: error: ‘MagickComplexOptions’ undeclared (first use in this function) 
     in=ParseCommandOption(MagickComplexOptions,MagickFalse,(char *) 
          ^
Magick.xs:3524:13: error: ‘ComplexOperator’ undeclared (first use in this function) 
     op=(ComplexOperator) in; 
      ^
Magick.xs:3524:30: error: expected ‘;’ before ‘in’ 
     op=(ComplexOperator) in; 
          ^
Magick.xs:3548:38: error: expected ‘;’ before ‘in’ 
       op=(ComplexOperator) in; 
            ^
Magick.xs:3563:5: warning: implicit declaration of function ‘ComplexImages’ [-Wimplicit-function-declaration] 
    image=ComplexImages(image,op,exception); 
    ^
Magick.xs:3563:10: warning: assignment makes pointer from integer without a cast [enabled by default] 
    image=ComplexImages(image,op,exception); 
     ^
Magick.xs: In function ‘XS_Image__Magick_Mogrify’: 
Magick.xs:9824:11: warning: implicit declaration of function ‘RotationalBlurImageChannel’ [-Wimplicit-function-declaration] 
      image=RotationalBlurImageChannel(image,channel,geometry_info.rho, 
     ^
Magick.xs:9824:16: warning: assignment makes pointer from integer without a cast [enabled by default] 
      image=RotationalBlurImageChannel(image,channel,geometry_info.rho, 
       ^
Magick.xs:10895:11: warning: implicit declaration of function ‘CannyEdgeImage’ [-Wimplicit-function-declaration] 
      image=CannyEdgeImage(image,geometry_info.rho,geometry_info.sigma, 
     ^
Magick.xs:10895:16: warning: assignment makes pointer from integer without a cast [enabled by default] 
      image=CannyEdgeImage(image,geometry_info.rho,geometry_info.sigma, 
       ^
Magick.xs:10916:11: warning: implicit declaration of function ‘HoughLineImage’ [-Wimplicit-function-declaration] 
      image=HoughLineImage(image,(size_t) geometry_info.rho,(size_t) 
     ^
Magick.xs:10916:16: warning: assignment makes pointer from integer without a cast [enabled by default] 
      image=HoughLineImage(image,(size_t) geometry_info.rho,(size_t) 
       ^
Magick.xs:10939:11: warning: implicit declaration of function ‘MeanShiftImage’ [-Wimplicit-function-declaration] 
      image=MeanShiftImage(image,(size_t) geometry_info.rho,(size_t) 
     ^
Magick.xs:10939:16: warning: assignment makes pointer from integer without a cast [enabled by default] 
      image=MeanShiftImage(image,(size_t) geometry_info.rho,(size_t) 
       ^
make: *** [Magick.o] Error 1 
    JCRISTY/PerlMagick-6.89-1.tar.gz 
    /usr/bin/make -- NOT OK 
Running make test 
    Can't test without successful make 
Running make install 
    Make had returned bad status, install seems impossible 

ответ

2

В Fedora, CentOS, Ubuntu и больше там был такого рода вызова в адресности Image :: Magick установить с помощью программы CPAN, и там была Чувствительность о установочном-скрипте для изображения :: Magick в течение нескольких лет, кажется (если вы ищете вокруг). Это так и для настольных Linux, и даже более того, через Apache cpanel. Есть рецепты, но, по крайней мере, в Ubuntu, они не решают все проблемы. Иногда, чтобы понять это правильно, сначала нужно удалить соответствующие библиотеки с помощью ImageMagick, чтобы сбросить ссылки. Все предлагаемые решения сосредотачиваются вокруг установки других вещей перед использованием «cpan». Однако лучший подход, который я нахожу, вовсе не для компиляции из исходного кода, а для установки бинарного приложения ImageMagick, когда это доступно, и соответствующих библиотек до и после cpan, вроде этого - в Ubuntu, но адаптированных для Fedora it должен быть похож или так же:

sudo apt-get install perlmagick 
sudo apt-get install ImageMagick 
sudo cpan install Image::Magick 
sudo apt-get install libperl-dev 

для полноты картины, если один не может найти правильный двоичный файл, нужно позаботиться, чтобы предустанавливать все соответствующие библиотеки, как указано на http://www.imagemagick.org, а затем этот набор команд заменит строка # 2 выше, когда выполняется после «sudo -i» (в Ubuntu) или эквивалентно в Fedora, во временной папке:

wget http://www.imagemagick.org/download/ImageMagick.tar.gz 
tar xvfz ImageMagick.tar.gz 
cd Imag* 
./configure --with-perl 
make 
make install 

Когда эта установка будет завершена, перейдите к строке № 3 выше. Адаптируйте начало команды к форме, которая соответствует другим формам linux. После этого программа perl, имеющая , использует Image :: Magick; в своем старте должен быть в состоянии сделать, например, изменение размера jpg-изображений и т. Д. Безупречно.

3

Проблема заключается в том, что CPAN не знает о зависимостях, отличных от Perl.

Perl Image :: Модуль Magick - это всего лишь обертка вокруг библиотеки C. Вам понадобится эта библиотека, прежде чем вы сможете создать модуль Perl.

$ sudo yum install ImageMagick 

Он также, вероятно, нуждается в пакете разработки ImageMagick.

$ sudo yum install ImageMagick-devel 

Но это, наверное, проще просто установить версию RPM, который уже упакованную для Fedora (который будет автоматически тянуть в любых других требованиях).

$ sudo yum install ImageMagick-perl 
+0

спасибо. Я считаю, что это работает, если вы используете только систему perl. – Number1

Смежные вопросы