ARM平台移植jpeg z png 库
来源:互联网 发布:诈骗淘宝店铺 编辑:程序博客网 时间:2024/06/13 13:25
最近移植一些第三方开源库,移植中遇到一些问题,写出来和大家分享。解决困难的过程也是学习的过程。下面就是一份总结吧。
需要移植的库:
root@ubuntu:/work/SKIA/3rdparty# ls
3716C_libs freetype-2.3.4 libpng-1.2.16 libpng-1.2.44 README
curl-7.20.0 giflib-4.1.6 jpeg-8b libiconv-1.13.1 libpng-1.2.43 libxml2-2.6.30 zlib-1.2.3
其中curl库不需要移植。
在嵌入式开发中经常见到把交叉编译工具链安装到系统目录下:/usr/local/目录下,在这里提供一个参考方法:
文件 如:arm.env
root@ubuntu:/ubuntu/嵌入式Linux应用开发技术大全# cat arm.env
export PATH=/ubuntu/嵌入式Linux应用开发技术大全/tools/gcc-3.4.5-glibc-2.3.6/bin:$PATH
source arm.env 这样我们就可以把工具链放在任意位置了。
1.首先编译jpeg库,这个库没有费多大劲直接 ./configure
写了一个shell脚本:
- root@ubuntu:/work/SKIA/3rdparty/jpeg-8b# cat build3716C.sh -n
- 1 #!/bin/bash
- 2 #1. use auto-generated Makefile compile jpeg
- 3 echo -e "\nStart configure...\n"
- 4 sleep 2
- 5 ./configure -host=arm-hisiv200-linux --prefix=/work/SKIA/rootfs/usr/
- 6 #2. complile
- 7 echo -e "\nStart compiling...\n"
- 8 sleep 2
- 9 make
- 10 #3 make install
- 11 echo -e "\nStart install...\n"
- 12 sleep 2
- 13 make install
- 14 #4. copy relevant libs to specified directory.
- 15 echo -e "\nCopy libs...\n"
- 16 cp -d .libs/libjpeg.so* ../3716C_libs
- 17
到安装目录看一下:
- root@ubuntu:/work/SKIA/rootfs/usr/lib# ls
- libjpeg.a libjpeg.la libjpeg.so libjpeg.so.8 libjpeg.so.8.0.2
- root@ubuntu:/work/SKIA/rootfs/usr/lib# file libjpeg.so.8.0.2
- libjpeg.so.8.0.2: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped
- root@ubuntu:/work/SKIA/rootfs/usr/include# ls
- jconfig.h jerror.h jmorecfg.h jpeglib.h
- root@ubuntu:/work/SKIA/rootfs/usr/bin# ls
- cjpeg djpeg jpegtran rdjpgcom wrjpgcom
- root@ubuntu:/work/SKIA/rootfs/usr/share/man/man1# ls
- cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1
大概过程都是一样的,在gif库中有一个脚本autogen.sh
- root@ubuntu:/work/SKIA/3rdparty/giflib-4.1.6# cat autogen.sh -n
- 1#!/bin/sh
- 2
- 3# This script runs commands necessary to generate a Makefile for libgif.
- 4
- 5echo "Warning: This script will run configure for you -- if you need to pass"
- 6echo " arguments to configure, please give them as arguments to this script."
- 7
- 8srcdir=`dirname $0`
- 9test -z "$srcdir" && srcdir=.
- 10
- 11THEDIR="`pwd`"
- 12cd $srcdir
- 13
- 14aclocal
- 15autoheader
- 16libtoolize --automake
- 17automake --add-missing
- 18autoconf
- 19automake
- 20
- 21cd $THEDIR
- 22
- 23$srcdir/configure $*
- 24
- 25exit 0
这是一个自动产生Makefile的脚本。生成Makefile后,可以使用上边的build.sh脚本来编译。前提是你安装好automake工具。在ubuntu上:apt-get install automake
z库还有一点不同,它的configure文件不是automak工具生成的,有自己的格式:
root@ubuntu:/work/SKIA/3rdparty/zlib-1.2.3# ./configure --help
usage:
configure [--shared] [--prefix=PREFIX] [--exec_prefix=EXPREFIX]
[--libdir=LIBDIR] [--includedir=INCLUDEDIR]
在写build.sh脚本的时候就按照这个格式写就可以了。
export CC=arm-hisiv200-linux-gcc
#1 ./configure
echo -e "\n Start configure...\n"
sleep 2
./configure --share --prefix=/work/SKIA/rootfs/usr/
最让人头疼的是png库,生成png文件后,由于png依赖z库,所以要指定libz 库和头文件的位置。
在build.sh中这样指定:
export CFLAGS=-I/work/SKIA/3rdparty/zlib-1.2.3
export LDFLAGS=-L/work/SKIA/3rdparty/zlib-1.2.3
然后make:
但是总是出现下面的错误:
- PNG12_0 '{global:' > libpng.vers.new
- /bin/bash: PNG12_0:找不到命令
- make[1]: *** [libpng.vers] 错误 127
- make[1]:正在离开目录 `/work/SKIA/3rdparty/libpng-1.2.16'
- make: *** [all] 错误 2
- rm -f libpng.vers libpng.vers.new
- PNG12_0 '{global:' > libpng.vers.new
- /bin/bash: PNG12_0:找不到命令
- make: *** [libpng.vers] 错误 127
将 Makefile中 有libpng.vers的全部注掉,呵呵这是google来,是老外出的主意。
0
上一篇:在嵌入式中使用gdbserver
下一篇:shell脚本编程
相关热门文章
- SHTML是什么_SSI有什么用...
- 卡尔曼滤波的原理说明...
- shell中字符串操作
- 关于java中的“错误:找不到或...
- linux设备驱动归纳总结...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- ARM平台移植jpeg z png 库
- Jpeglib移植到arm平台 & 修改支持解码内存中的jpeg数据流
- android平台移植jpeg-turbo库达到减小jpeg编码体积的目的
- opencv2.0移植过程中zlib,jpeg,png库的交叉编译
- OpenCV 2.0移植过程中zlib,jpeg,png库的交叉编译
- opencv2.0移植过程中zlib,jpeg,png库的交叉编译
- linux 7z命令安装使用及其交叉编译移植到arm linux平台
- linux 7z命令交叉编译移植到arm linux平台
- 移植glib库,procps到arm平台
- Qt arm平台移植
- wvdial移植ARM平台
- arm平台移植glib
- LinuxCNC ARM平台移植
- arm平台移植mplayer
- ARM平台移植GDB
- 移植 ffmpeg 到 ARM 平台
- arm平台udev的移植
- tslib移植至arm平台
- Skia引擎API整理介绍(转载)
- TS 流解码过程(转载)
- ES TS PS 流
- 使用pppd移植WCDMAdongle
- 在嵌入式中使用gdbserver
- ARM平台移植jpeg z png 库
- 编程之美读书笔记-计算字符串的相似度
- shell脚本编程
- shell学习
- configure 配置选项
- 键盘控制
- ora-00845解决方法
- 移植 unzip 工具
- udev实现原理
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
手机的增值业务费是什么
增值业务费是什么费用
什么是增值业务费中国移动
移动增值业务费是什么意思
移动手机增值业务费
怎样取消增值业务费
如何避免移动增值业务费
打10086如何取消增值业务费
业务部职责
业务部
业务部长吉良奈津子
业务量
业火的向日葵下载
业委会成立条件
业委会
业委会成立流程图
业委会成立流程
业委会职责
业委会成员有工资吗
业委会主任有工资吗
业委会成立的条件
小区成立业委会的利弊
小区业委会有工资吗
2018年业委会有补贴多少
成立业委会的条件
业委会成员
范庄村委会
家委会
委会
赣锋锂业 产能
赣锋锂业股票走势
赣锋锂业 股吧
赣锋锂业行情
业尸骸
业州镇
业成语
业开头成语
业的成语
业开头的成语
业的成语开头
业开头的成语接龙