我尝试使用brew安装:
brew install imagemagick
安装似乎已成功完成。然而,当尝试:
use Image::Magick;
我收到以下错误消息:
Can't locate Image/Magick.pm in @INC
我对 mac 上的 perl 系统了解不多,也不知道brew 可能在哪里安装了 Image::Magick(我被告知它应该将 perl 库作为 imagemagick 安装的一部分安装)。
AFAIK
homebrew
版本的 ImageMagick 不包含 perl-magick。您应该从源安装它:
以上所有内容都是猜测 - 我正在使用 MacPorts。 MacPorts 有两个端口:
ImageMagick
用于基本 ImageMagick 和 p5-perlmagick
用于 perl 绑定。
在 PerlMagick-6.89-1 上有 2 个错误并使用
“进行测试”t/filter.t ........ Failed 1/58 subtests
和
t/mpeg/read.t ..... Failed 2/2 subtests
修复第一眼看到的问题
http://www.imagemagick.org/discourse-server/viewtopic.php?t=29759
第二个
问题是
https://rt.cpan.org/Public/Bug/Display.html?id=102482
看代码
t/mpeg/read.t 存在校验和问题
测试代码:
20 testRead( 'input.m2v',
21 'd0d08bbb6ea2f9d5d76bc134a4785f3ab25d6b03d66c64bc43b6b2a9174582d7' );
22
23 #
24 # Motion Picture Experts Group file interchange format
25 #
26 ++$test;
27 testRead( 'input.mpg',
28 'bbffb8cfbd98a111f7ff625fbc2cf49485d92640de702a2e76c0852ead39c6f1' );
我认为这不是一个严重的问题,也不是一个非常本地化的问题。
因此在所有情况下 99.9% 折扣
sudo make install
没问题。
希望下次 PerlMagick 团队能够修复。
如果有人在 Apple Silicon M3 安装 Image::Magick 时遇到困难。这就是我所做的:
brew 安装 imagemagick
下载http://www.imagemagick.org/download/perl/PerlMagick-7.1.1.tar.gz
打开终端.app
cd ~/下载
tar xvzf PerlMagick-7.1.1.tar.gz
cd PerlMagick-7.1.1
编辑 Makefile.PL 并将 /usr/local 更改为 /opt/homebrew
# defaults for LIBS & INC & CCFLAGS params that we later pass to
Writemakefile
my $INC_magick = '-I/opt/homebrew/include/ImageMagick-7 -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick-7"';
my $LIBS_magick = '-L/opt/homebrew/lib -lMagickCore-7.Q16HDRI -lm -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/freetype2 -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LDFLAGS_magick = "-L/opt/homebrew/lib -lMagickCore-7.Q16HDRI $Config{'ldflags'} ";
my $LDDLFLAGS_magick = "-L/opt/homebrew/lib -lMagickCore-7.Q16HDRI $Config{'lddlflags'} ";
......
'INSTALLBIN' => '/opt/homebrew/bin',
......
$inherited =~ s:MAP_LINKCMD\s.*\s*\$\(CC\):MAP_LINKCMD = \$(PERLMAINCC) -L/opt/homebrew/lib: ;
perl Makefile.PL
制作
进行测试
make install(或 sudo make install)
这就是它开始对我起作用的方式。