2009-07-26 16 views
0

"Imagemagick 6.3.9+"に依存するソフトウェア(moddims)をインストールしようとしています - ImageMagick(6.5.4-5)の最新バージョンをインストールしようとしましたが、試したときに次のエラーが表示されました"make" moddims:古いバージョンのライブラリに対して/ make/configureを設定するにはどうすればよいですか?

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をインストールしたいと思います。

a)古いバージョンのImageMagickを上書きしないようにインストールしてください。b)moddimsをコンパイルして古いバージョンを使用することができます。 ?

私はOSXになっていますが、後でLinuxプロダクションサーバーにmoddimsをインストールする必要があるときに同じ問題が発生することが予想されます。

答えて

2

明らかに、古いバージョンのImageMagickを入手し、コンパイルしてインストールする必要があります。

  • 新しいディレクトリを作成します - それは実験段階であり、特に以来(あなたはあなたの周りのImageMagickのこのバージョンを維持したい確かに知っていない) - 私は考え、この問題に直面し

    ImageMagickのインストール:

    /opt/ImageMagick 
    
  • 設定のImageMagick 6.3.9をそこにインストールするには - おそらく:

    ./configure --prefix=/opt/ImageMagick 
    
  • ビルド、テスト、およびインストールします。標準の場所の前にImageMagickの場所で見て

  • 設定のmoddims:生産moddimsコードはお好みのライブラリを使用していること

    export LDFLAGS=-L/opt/ImageMagick/lib 
    export CPPFLAGS=-I/opt/ImageMagick/include 
    ./configure .... 
    
  • がチェック:

    otool -L ...moddims-progam-or-library... # MacOS X 
    ldd ...moddims-program-or-library...  # Linux, etc. 
    

最初にチェックします「設定されたときにmoddimsをコンパイルしますか?もしそうでなければ、おそらくmoddimsヘッダファイルの '標準'バージョンを使用しています。

./configure --help(および/または 'grep -i image configure')にチェックを入れて、ImageMagickライブラリをどこから取得するかを指定するオプションがconfigureである場合もあります。

+0

「ImageMagick 6.3.9をインストールするように設定してください」と思っています。./configure --prefix =/opt/ImageMagick/--exec-prefix =/opt/ImageMagick/"? –

+0

また、「/ opt/ImageMagick」(他のどこかの自分のホームディレクトリのような)とは対照的に、なぜですか? ImageMagickライブラリに静的にリンクすることができますので、それらを削除してファイルシステムを乱雑にしないでください。 –

+0

私は嫌なことに思えるかもしれません...私はたくさんのコンパイルをしましたが、/private/etc/apache2/httpd.confの "117行目に構文エラーがあります:/ usr/libexec/apache2/libmod_dimsを読み込めませんdlopen(/usr/libexec/apache2/libmod_dims.so、10):適切なイメージが見つかりませんでした。\ usr \ libexec/apache2/libmod_dims.so:mach-oですが、間違っています。アーキテクチャー " - 私はmoddimsを32ビットではなく64ビットとしてコンパイルする必要があると思いますが、それはImageMagickで同じことをすることです。これは厄介なエラーを投げかけています。 –

1

ImageMagickはpkg-configを使用しているので、古いバージョンを参照するようにPKG_CONFIG_PATHを調整するだけです。 (これはあなたのパッケージがImageMagickのためにPKG_CHECK_MODULESを呼び出すことを前提としています。パッケージがそれをしない場合は、それを変更する必要があります)。

基本的に古いImageMagickをつかみ、例えば、/ configure --prefix = $ HOME/obsolete & & make install)パッケージに入り、引数PKG_CONFIG_PATH = $ HOME/obsolete/lib/pkgconfigで設定します。残念ながら、ImageMagickは指定された接頭辞(例えば、/ Library/perl)の外にファイルをインストールするので、現在のライブラリを変更しないことは保証されません。 (IMO、これはImageMagickパッケージングのバグです)

詳細については、pkg-configのマニュアルを参照してください。

関連する問題