0

ImageMagic++ ライブラリを使用する x86 C++ アプリケーションがあります。CentOS 7 x86_64 を搭載したマシンもあります。このマシンでアプリケーションをビルドする必要があります。i686 ImageMagick ライブラリをインストールしました。

[dvoryankin@testsuitel]$ yum list installed | grep Magick
 ImageMagick.i686                   6.7.8.9-10.el7                      @base    
 ImageMagick-c++.i686               6.7.8.9-10.el7                      @base    
 ImageMagick-c++-devel.i686         6.7.8.9-10.el7                      @base    
 ImageMagick-devel.i686             6.7.8.9-10.el7                      @base

アプリケーションをビルドしようとすると、次のエラーが表示されます。

/usr/include/ImageMagick/magick/magick-config.h:9:31:
fatal error: magick-config-64.h: No such file or directory
    #include "magick-config-64.h"

これは、ファイル/usr/include/ImageMagick/magick/magick-config.hがマクロ定義__WORDSIZEを使用して、どのファイルを含める必要があるかを決定するために発生しましたmagick-config-64.hまたはmagick-config-32.h。CentOS 7 x86_64 を搭載した私のマシンでは、このマクロは 64 に等しく、ImageMagick はmagick-config-64.h を含めようとしますが、i686 ライブラリにはこれがなく、magick-config-32.hのみが含まれます。

ライブラリ ファイルを変更せずに、CentOS 7 x86_64 マシンで x86 ImageMagick ライブラリを使用して x86 アプリケーションをビルドするにはどうすればよいですか?

4

2 に答える 2

0

/usr/ImageMagick とデリゲートを隔離された場所 (ディレクトリではない) に再構築することしか提案できません。

curl -O http://www.imagemagick.org/download/ImageMagick.tar.gz
tar zvxf ImageMagick.tar.gz && cd ImageMagick-6.9.2-4
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 \
./configure --build=i686-pc-linux-gnu --prefix=/opt/im32

がクロスプラットフォームをビルドするために必要なものがすべて揃っていて、ImageMagick のすべての依存関係が既に .NET に組み込まれている場合x86

このユーティリティを使用して、 アプリケーション/opt/im32/bin/Magick++-configに必要な追加のコンパイラ/リンカー フラグを出力できます。

于 2015-10-16T14:23:57.787 に答える