手机版
你好,游客 登录 注册
背景:
阅读新闻

Ubuntu 16.04下交叉编译ImageMagick

[日期:2017-09-04] 来源:Linux社区  作者:dakewei [字体: ]

环境:Ubuntu 16.04

交叉编译器版本号:4.8.3

在编译之前要编译以下其依赖的软件或库:freetype,libpng,libxml2,libtiff,libjpeg,zlib,graphviz

zlib库

1.tar xvf zlib-1.2.11.tar.xz

2.export CC=arm-linux-gnueabi-gcc

3.export AR=arm-linux-gnueabi-ar

4.mkdir build

5.cd build

6.  ../configure --prefix=$PWD/_install

7.make

8.make install

libtiff没有依赖,使用autoconf生成configure脚本,那么直接编译libtiff

1.wget http://download.osgeo.org/libtiff/tiff-4.0.8.tar.gz

2.tar -xvf tiff-4.0.8.tar.gz

3.cd tiff-4.0.8

4.autoconf

5.export CC=arm-linux-gnueabi-gcc

6.export AR=arm-linux-gnueabi-ar

7.mkdir compile

8.cd compile

9.   ../configure --prefix=$PWD/_install --host=arm-linux-gnueabi

10.make

11.make install

libjpeg没有依赖,使用autoconf生成configure脚本

1.wget www.ijg.org/files/jpegsrc.v9b.tar.gz

2.tar xvf jpegsrc.v9b.tar.gz

3.cd jpeg-9b/
4.autoconf
5.mkdir build

6.  ../configure --prefix=$PWD/_install --host=arm-linux-gnueabi

7.make

8.make install

libpng依赖于zlib,使用autoconf生成configure脚本

1.wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.32.tar.xz

2.tar xvf libpng-1.6.32.tar.xz

3.cd libpng-1.6.32

4.mkdir build

5.cd build

6.  ../configure --prefix=$PWD/_install  LIBS=-L/home/jello/zlib-1.2.11/build/_install/lib CPPFLAGS=-I/home/jello/zlib-1.2.11/build/_install/include --host=arm-linux-gnueabi

7.make

8.make install

libxml2依赖于zlib,configure由autoconf生成,配置项--without-Python

1.axel ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz

2.tar xvf libxml2-2.9.4.tar.gz

3.cd libxml2-2.9.4

4.mkdir build

5.cd build

6. ../configure --prefix=$PWD/_install LIBS=-L/home/jello/zlib-1.2.11/build/_install/lib CPPFLAGS=-I/home/jello/zlib-1.2.11/build/_install/include --host=arm-linux-gnueabi --without-python
7.make
8.make install

freetype依赖于zlib,libpng

1.wget nongnu.askapache.com/freetype/freetype-2.6.5.tar.gz

2.tar xvf freetype-2.6.5.tar.gz

3.cd freetype-2.6.5

4.mkdir build

5.cd build

6. export LDFLAGS="-L/home/jello/zlib-1.2.11/build/_install/lib -L/home/jello1/libpng-1.6.32/build/_install/lib"

7.export CFLAGS="-I/home/jello/zlib-1.2.11/build/_install/include -I/home/jello/libpng-1.6.32/build/_install/include"
8.最重要的一步:还记得刚安装好的libpng库吗?现在需要它的帮助,进入它的安装目录吧,笔者的在/home/jello/libpng-1.6.32/build/__install下,所以进入其lib目录:
cd /home/jello/libpng-1.6.32/build/__install/lib

接着再创建一个软链接,链接到库libpng16.so.16.32.0

ln -s libpng12.so libpng16.so.16.32.0

好了这一步很关键,如果不做这一步,会提示找不到-lpng12,也就是找不到库文件libpng12.so那么回到之前的build目录吧

9. ../configure --prefix=$PWD/__install --host=arm-linux-gnueabi

10.make

11.make install

graphviz 不需要编译此软件,只需要交叉编译其中的3个库即可,libcdt.so libcgraph.so libgvc.so,编译imagemagick需要这三个库及及其头文件路径

1.wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.40.1.tar.gz

2. tar xvf graphviz-2.40.1.tar.gz

3. cd graphviz-2.40.1

4.mkdir build

5.cd build

6.export CC=arm-linux-gnueabi-gcc

7.export AR=arm-linux-gnueabi-ar

8.  ../configure --prefix=$PWD/__install --host=arm-linux-gnueabi

9.make (会有错误信息,不用管,因为在这个过程中会运行编译好的arm程序,但当前是pc机,因此不能运行,故报错)

10.make install (会有错误信息,不用管,我们只需要生成的那三个库和头文件就可以了)

 

准备已经妥当,开始交叉编译imagemagick

1.获取源码:

git clone https://github.com/ImageMagick/ImageMagick.git

2.指定库和头文件的路径,这里就是为了保证在交叉编译时找到正确的库!

export CFLAGS="-I/home/jello/freetype-2.6.5/build/_install/include -I/home/jello/freetype-2.6.5/build/_install/include/freetype2 -I/home/jello/libpng-1.6.32/build/_install/include -I/home/jello/tiff-4.0.8/compile/_install/include -I/home/jello/jpeg-9b/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include/libxml2 -I/home/jello/zlib-1.2.11/build/_install/include -I/home/jello/graphviz-2.40.1/build/_install/include/graphviz"

export LDFLAGS="-L/home/jello/freetype-2.6.5/build/_install/lib -L/home/jello/libpng-1.6.32/build/_install/lib -L/home/jello/tiff-4.0.8/compile/_install/lib -L/home/jello/jpeg-9b/build/_install/lib -L/home/jello/libxml2-2.9.4/build/_install/lib -L/home/jello/zlib-1.2.11/build/_install/lib -L/home/jello/graphviz-2.40.1/build/_install/lib"

3.cd ImageMagick

4.mkdir build

5.cd build

6. ../configure --prefix=$PWD/__install --disable-installed --without-perl --without-x --without-fpx --without-wmf --disable-openmp --host=arm-hisiv400-linux-gnueabi

7.在当前目录项会生成Makefile文件,修改其中的CFLAGS,笔者生成的Makefile文件中的CFLAGS如下:

CFLAGS = -I/usr/include/libxml2 -I/usr/include/libpng12 -I/usr/include/graphviz -I/usr/include/freetype2   -I/home/jello/freetype-2.6.5/build/_install/include -I/home/jello/freetype-2.6.5/build/_install/include/freetype2 -I/home/jello/libpng-1.6.32/build/_install/include -I/home/jello/tiff-4.0.8/compile/_install/include -I/home/jello/jpeg-9b/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include/libxml2 -I/home/jello/zlib-1.2.11/build/_install/include -I/home/jello/graphviz-2.40.1/build/_install/include/graphviz -Wall -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16

将其中含有/usr/include的路径删掉,笔者删除后如下:

CFLAGS = -I/usr/include/graphviz -I/usr/include/freetype2   -I/home/jello/freetype-2.6.5/build/_install/include -I/home/jello/freetype-2.6.5/build/_install/include/freetype2 -I/home/jello/libpng-1.6.32/build/_install/include -I/home/jello/tiff-4.0.8/compile/_install/include -I/home/jello/jpeg-9b/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include -I/home/jello/libxml2-2.9.4/build/_install/include/libxml2 -I/home/jello/zlib-1.2.11/build/_install/include -I/home/jello/graphviz-2.40.1/build/_install/include/graphviz -Wall -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16

 8.make

9.make install

ok完结

相关阅读

利用ImageMagick绘制三基色原理图 http://www.linuxidc.com/Linux/2012-09/70007.htm

Linux下PHP支持ImageMagick和MagicWandForPHP http://www.linuxidc.com/Linux/2011-01/31539.htm

Linux下用ImageMagick玩图像魔术 http://www.linuxidc.com/Linux/2010-06/26921.htm

Linux下ImageMagick和MagicWand For PHP的安装 http://www.linuxidc.com/Linux/2008-07/14525.htm

Linux下ImageMagick和JMagick的安装整理 http://www.linuxidc.com/Linux/2008-09/15649.htm

Linux系统上编译好的ImageMagick迁移到另一台机器 http://www.linuxidc.com/Linux/2017-03/141420.htm

ImageMagick 的详细介绍请点这里
ImageMagick 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-09/146714.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款