![](/img/trans.png)
[英]How to build a './configure && make && make install' software against a custom library which I also build?
[英]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.