如何针对旧版本的库进行configuration/制作/安装?

我试图安装一个软件( moddims )取决于“Imagemagick 6.3.9+” – 我试图安装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和当前版本之间有所变化。

我想尝试安装moddims对旧版本的ImageMagick – 但我想安装ImageMagick 6.3.9而不会干扰已经安装的6.5.4-5版本。

我可以使用什么./configure咒语a)安装旧版本的ImageMagick,以免覆写或干扰我的现代版本,b)编译moddims以使用旧版本?

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

Solutions Collecting From Web of "如何针对旧版本的库进行configuration/制作/安装?"

显然,你必须获得,编译和安装旧版本的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 ')。

由于ImageMagick使用pkg-config。 所有你需要做的是调整你的PKG_CONFIG_PATH引用旧版本。 (这假定你的包调用了PKG_CHECK_MODULES来为ImageMagick配置自己,如果你的包没有这样做的话,你应该修改它以便它。

基本上,你想抓取旧的ImageMagick并将其安装在某处(例如./configure –prefix = $ HOME / obsolete && make install),然后转到你的软件包并使用参数PKG_CONFIG_PATH = $ HOME / obsolete / lib / pkgconfig。 不幸的是,ImageMagick会在指定的前缀之外安装文件(比如在/ Library / perl中),所以这并不保证不会修改你当前的库。 (国际海事组织,这是一个ImageMagick包装错误。)

有关详细信息,请查看pkg-config文档。