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

标签 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 - 但我想在不干扰已安装的 6.5.4-5 版本的情况下安装 ImageMagick 6.3.9。

我可以使用什么 ./configure 咒语来 a) 安装旧版本的 ImageMagick,使其不会覆盖或以其他方式干扰我的现代版本,以及 b) 编译 moddims 以使用旧版本?

我在 OSX 上,但我预计以后需要在 Linux 生产服务器上安装 moddims 时会遇到同样的问题。

最佳答案

显然,您必须获取、编译和安装旧版本的 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').

关于linux - 如何针对旧版本的库进行配置/制作/安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1185106/

相关文章:

linux - 在输出中搜索并从特定行搜索到特定行,然后再次搜索

python - 在 linux "screen"中运行 Python 脚本会产生 "Cannot assign requested address"

linux - bash 使用 -z 检查空字符串/行

objective-c - 判断音频文件是否为VBR

ios - iOS 上的/etc/hosts

python - 在 pkg-config 搜索路径中找不到软件包 libffi REDHAT6.5

c++ - 为什么不使用引用地址指针对 C++ 进行编译?

swift - NSView .transform 等效吗?

node.js - 监听 UNIX 域套接字的 WebSockets?

unix - 检查/验证 OpenSSL 的解密密码