У меня есть решение!
Проблема в том, что Makefile.pl
ищет двоичные файлы в неправильных каталогах.
- Получите последнюю версию пакета ImageMagick. нажмите
- Распакуйте его и перейдите в папку
PerlMagick
- открыть
Makefile.pl
в редакторе.
- Посмотрите на первый блок foreach:
foreach my $line (split '\n', $conf) {</p>
<pre><code>if ($line =~ /^Path:\s+(.*)/) {
my ($vol,$dir,$file) = splitpath($1);
next unless $dir;
my $dirpath = catpath( $vol, $dir);
my (@l,@b,@i) = ( (),(),() );
# try to detect 'lib' dir
push @l, catfile($dirpath,'..','lib');
push @l, catfile($dirpath,'..','..','lib');
push @l, catfile($dirpath,'..','..','..','lib');
foreach (@l) { push @libdir, $_ if (-d $_) };
# try to detect 'bin' dir
push @b, catfile($dirpath,'..');
push @b, catfile($dirpath,'..','bin');
push @b, catfile($dirpath,'..','..');
push @b, catfile($dirpath,'..','..','bin');
push @b, catfile($dirpath,'..','..','..');
push @b, catfile($dirpath,'..','..','..','bin');
foreach (@b) { push @bindir, $_ if (-e "$_/convert.exe" || -e "$_/identify.exe") };
# try to detect 'include' dir
push @i, catfile($dirpath,'..','include');
push @i, catfile($dirpath,'..','include','ImageMagick');
push @i, catfile($dirpath,'..','..','include');
push @i, catfile($dirpath,'..','..','include','ImageMagick');
push @i, catfile($dirpath,'..','..','..','include');
push @i, catfile($dirpath,'..','..','..','include','ImageMagick');
foreach (@i) { push @incdir, $_ if (-e "$_/magick/MagickCore.h") };
}
}
Сценарий получает местоположение установки IM из% PATH% и ищет папки bin, lib и include. Он выглядит везде, кроме своего фактического местоположения.
Так что вам просто нужно добавить эти:
# try to detect 'lib' dir
push @l, catfile($dirpath,'lib');
...
# try to detect 'bin' dir
push @b, catfile($dirpath);
...
# try to detect 'include' dir
push @i, catfile($dirpath,'include');
...
После этого вы можете выполнить perl Makefile.pl
, и он будет правильно генерировать make-файл. Тогда просто скажите dmake
и dmake install
и все будет хорошо.
Надеюсь, это когда-нибудь поможет.