2015-10-16 60 views
0

我有使用ImageMagiC++库的x86 C++应用程序。我也有CentOS 7 x86_64的机器。我需要在这台机器上构建我的应用程序。 我已经安装了i686的ImageMagick库:在x86_64 linux系统上构建x86 ImageMagick应用程序

[[email protected]]$ 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.hmagick-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应用程序?

+0

你做完之前'百胜安装的ImageMagick-devel' –

+0

@MarkSetchell是的,我已经安装的ImageMagick-devel的.i686 – DvoryankinEvgeny

+0

您是否尝试过最新版本?毕竟,你的版本大约在2+岁以上,我们现在在6.9.2-3 –

回答

0

我只能建议重建ImageMagick &委托在一个孤立的位置(而不是/usr/目录)。

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 

只要你有你需要的构建跨平台的一切,你已经建成x86所有ImageMagick的依赖关系。

实用程序/opt/im32/bin/Magick++-config可用于打印出您的应用程序所需的其他编译器/链接器标志。

+1

没有别的事情要做 – DvoryankinEvgeny

0

也许尝试定义在命令行__WORDSIZE像 CXXFLAGS = ' - d __WORDSIZE = 64' 配置

相关问题