我正在尝试安装依赖于“Imagemagick 6.3.9+”的软件(moddims) - 我尝试安装最新版本的ImageMagick(6.5.4-5)但是得到了以下内容我尝试“制作”moddims时出错:
mod_dims_ops.c: In function ‘dims_smart_crop_operation’:
mod_dims_ops.c:34: error: too few arguments to function ‘ParseGravityGeometry’
据推测,函数签名在ImageMagick 6.3.9和当前版本之间发生了变化。
我想尝试对旧版本的ImageMagick安装moddims - 但我想安装ImageMagick 6.3.9而不干扰已经安装的6.5.4-5版本。
我可以使用什么./configure incantations来安装旧版本的ImageMagick,使其不会覆盖或干扰我的现代版本,以及b)编译moddims以使用旧版本?
我正在使用OSX,但我预计在以后需要在Linux生产服务器上安装moddims时遇到同样的问题。
答案 0 :(得分:3)
显然,您必须获取,编译和安装旧版本的ImageMagick。
面对这个问题 - 特别是因为它处于试验阶段(你不确定你想要保留这个版本的ImageMagick) - 我会:
创建一个新目录以安装ImageMagick:
/opt/ImageMagick
将ImageMagick 6.3.9配置为安装在那里 - 可能:
./configure --prefix=/opt/ImageMagick
构建,测试并安装它。
配置moddims以在标准位置之前查看ImageMagick位置:
export LDFLAGS=-L/opt/ImageMagick/lib
export CPPFLAGS=-I/opt/ImageMagick/include
./configure ....
检查生成的moddims代码是否使用您首选的库:
otool -L ...moddims-progam-or-library... # MacOS X
ldd ...moddims-program-or-library... # Linux, etc.
第一次检查将是“配置时moddims编译”;如果没有,你可能正在使用moddims头文件的“标准”版本,尽管这样做是为了避免这样做。
可能还有configure
个选项来指定ImageMagick库的引导位置 - 请使用“./configure --help
”(和/或“grep -i image configure
”)进行检查。
答案 1 :(得分:1)
因为ImageMagick使用pkg-config。您需要做的就是调整PKG_CONFIG_PATH以引用旧版本。 (这假设您的包调用PKG_CHECK_MODULES为ImageMagick配置自己。如果您的包没有这样做,您应该修改它以便它。)
基本上,您想要抓住旧的ImageMagick并将其安装在某处(例如./configure --prefix = $ HOME / obsolete&& make install),然后转到您的包并使用参数PKG_CONFIG_PATH = $进行配置HOME /过时/ lib目录/ pkgconfig。不幸的是,ImageMagick将在您指定的前缀之外安装文件(例如在/ Library / perl中),因此不保证不会修改您当前的库。 (IMO,这是一个ImageMagick包装错误。)
查看pkg-config文档以获取详细信息。