簡體   English   中英

如何針對舊版本的庫進行配置/制作/安裝?

[英]How do I configure/make/install against an older version of a library?

我正在嘗試安裝依賴於“ Imagemagick 6.3.9+”的軟件( moddims )-我嘗試安裝最新版本的ImageMagick(6.5.4-5),但是在嘗試進行“ make “修改:

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咒語a)以不會覆蓋或干擾我的現代版本的方式安裝ImageMagick的舊版本,以及b)編譯模塊以使用該舊版本?

我在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 ')檢查。

由於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中)安裝文件,因此不能保證不修改您當前的庫。 (IMO,這是ImageMagick的打包錯誤。)

有關詳細信息,請查看pkg-config文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM