在 x86_64 linux 系统上构建 x86 ImageMagick 应用程序
Build x86 ImageMagick application on x86_64 linux system
我有一个使用 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 应用程序而不更改任何库文件?
我只能建议在一个独立的位置(而不是 /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
假设您拥有 gcc 构建跨平台所需的一切,并且您已经在 x86
.
中内置了所有 ImageMagick 依赖项
实用程序 /opt/im32/bin/Magick++-config
可用于打印出 c++ 应用程序所需的额外 compiler/linker 标志。
也许尝试在命令行中定义 __WORDSIZE
CXXFLAGS='-D __WORDSIZE=64'
配置前
我有一个使用 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 应用程序而不更改任何库文件?
我只能建议在一个独立的位置(而不是 /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
假设您拥有 gcc 构建跨平台所需的一切,并且您已经在 x86
.
实用程序 /opt/im32/bin/Magick++-config
可用于打印出 c++ 应用程序所需的额外 compiler/linker 标志。
也许尝试在命令行中定义 __WORDSIZE CXXFLAGS='-D __WORDSIZE=64' 配置前