如何针对旧版本的库配置/制作/安装?

时间:2009-07-26 17:46:24

标签: linux macos unix makefile compilation

我正在尝试安装依赖于“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时遇到同样的问题。

2 个答案:

答案 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文档以获取详细信息。

相关问题