更新
我已经检查了您获取包裹的页面,看起来我的假设是正确的——您缺少一个路径变量MAGICK_HOME。幸运的是,它似乎很容易修正。
您需要获取ImageMagick所在目录的绝对路径。如果情况紧急,您可以在任何地方搜索它——从命令行运行以下命令:
find / -type d -name "ImageMagick-7.0.3" 2>/dev/null
它应该只返回一个ImageMagick目录(除非您在不同的位置安装了多个版本,这种情况下您需要确定哪个是“正确”的软件包)。
作为另一种选择,如果您执行以下命令:
which convert
它应该告诉您
convert
可执行文件的完整路径,该文件应该位于 ImageMagick 安装的 bin 子目录中。
假设它说目录是:
/Users/lserni/Desktop/test/ImageMagick-7.0.3
然后,在终端中使用ImageMagick之前,您需要输入这些命令:
export HOME=/Users/lserni/Desktop/test
export MAGICK_HOME="$HOME/ImageMagick-7.0.3"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"
现在您可以尝试使用ImageMagick:
convert logo: logo.gif
identify logo.gif
它应该像这样给出一些东西:
logo.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 28.6KB ...
原始答案
dyld:库未加载:/ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
原因:找不到图像
有几个可能的原因。我认为最有可能的一个是该库实际上不存在于“那里”——“那里”指的是“卷根目录”中名为“ImageMagick-7.0.1”的目录。该库可能在/usr
、/lib
或/opt
中,但是上面的错误表明它正在寻找/ImageMagick-7.0.1
中的库。
尝试在终端中输入以下内容以查询该路径:
ls -la /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
我找到了一个参考资料,暗示你可以重定向一个可执行文件的 ldpath,如果它包含错误的路径,但我还没有尝试过:
install_name_tool -change /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/bin/NameOfImageMagickBinaryYou'ReCalling
二进制文件可能位于
/usr/local/bin/convert
。...而且,可能还有其他具有相同问题的库和IM二进制文件。另一个可能性是,库存在,但它正在尝试加载其他不存在的库。libPNG、JPEGlib、libTIFF等都是可能的候选项。虽然您可以使用诸如
strace
之类的工具深入了解此问题,但最好从开始检查安装情况。最后,您可能会遇到权限错误,无论是在dylib中还是在导致该dylib的路径中。如果您以root身份安装(或安装运行为root),则库目录将创建更安全的权限(例如750而不是755),然后您将以不同和/或权限较低的用户/组运行应用程序。如果您通过Homebrew安装了ImageMagick,请还要检查HB的配置路径。您的症状让我想起了如果安装脚本以
--prefix =
而不是
--prefix=/usr/local
运行,则会发生什么情况。
DYLD_LIBRARY_PATH
。 - emcconville