CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 6202|回复: 0

分享一个简单的ARM OPENCV的移植步骤1-6

[复制链接]
发表于 2014-3-9 02:34:31 | 显示全部楼层 |阅读模式

ARM OPENCV的移植编译器:arm-linux-gcc-4.5.1
jpeg库:jpegsrc.v6b.tar.gz
png库:libpng-1.2.18.tar.bz2
zlib库:zlib-1.2.3.tar.gz
opencv版本:opencv-2.0.0
上面几个文件的下载可在此处下载:http://download.csdn.net/detail/wc7620awjh/4869411

关于zlib,libpng、libjpeg的安装,本文参考了http://www.linuxidc.com/Linux/2011-09/42826.htm文章,根据自己情况做了相应修改,在这里予以感谢!

opencv2.0依赖于zlib,libpng、libjpeg等图形库,而我们的交叉编译工具链是不带这些库的,可以到/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/(我们安装/opt/FriendlyARM的目录) 目录下自行看一下,既然默认没带这些库,那就需要我们自行交叉编译这些库了!要将其安装到/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/include,/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib目录中。
1.zlib库的安装 # tar zxvf zlib-1.2.3.tar.gz
进入zlib-1.2.3的目录
打开zlib 库配置文件,可以发现它并不支持交叉编译选项,这里我们只能建立软连接,将linux系统自带的gcc指向交叉编译器的arm-linux-gcc:
# cd /usr/bin
建立gcc和ld的副本,为了后面用完之后返回时候所需。
#mv gcc gcc_back
#mv ld ld_back
建立软连接,使系统gcc和ld指向交叉编译器的arm-linux-gcc和arm-linux-ld
#  ln -sv /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc ./gcc
#  ln -sv /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-ld ./ld
下面任然进入zlib-1.2.3目录下进行配置编译安装
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --shared
#make && make install  
进入/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/的include和lib目录下可以发现多了一些文件。
下面将之前的gcc变回去,不然以后开发x86平台的程序就无法编译了。
#rm gcc
#rm ld
#mv gcc_back gcc
#mv ld_back ld
2.接下来安装png库解压libpng-1.2.18.tar.bz2,进入libpng-1.2.18
libpng中没有提供configure脚本,需要自行修改Makefile文件。
#cp scripts/makefile.linux Makefile
#vi  Makefile

CC=arm-linux-gcc      //修改这里
MKDIR_P=mkdir -p

# where "make install" putslibpng12.a, libpng12.so*,
# libpng12/png.h and libpng12/pngconf.h
# Prefix must be a full pathname.
prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/
exec_prefix=$(prefix)

# Where the zlib library and include filesare located.
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib   //修改这里
ZLIBINC=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/include//修改这里
保存退出后执行如下命令:
#make && make install
进入/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/的include和lib目录下可以发现多了一些文件。

3.接下来安装jpeg库jpeg库的configure文件在设计方面存在一些问题,如果直接编译会出现错误,提示无法找到libtool,这是因为要先用gcc编译该文件夹下的dummy.c文件,要解决这个问题,要先在本机编译,然后再用make clean操作命令清除本机编译的结果,在进行交叉编译即可。
首先展开本机编译的jpeg库的工作,解压jpegsrc.v6b.tar.gz,并进入jpeg-6b目录,进行配置
#./configure --enable-shared --enable-static
#make
#make clean
接下来进行jpeg库的交叉编译:
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --host=arm-linux --enable-shared --enable-static
按此命令进行,然后修 改makefile文件将CC的值改为arm-linux-gcc,一定得改!!
#make
安装前需要在 arm-linux 下建个目录,不然安装会出错
#mkdir -pv /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/man/man1
#make install
进入/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/的include和lib目录下可以发现多了一些文件。

接下来安装xvid,yasm,x264和ffmepg
4.xvid安装解压xvid并进入xvidcore/build/generic
配置
# ./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --disable-assembly

修改Makefile易用的platform.inc文件,将CC=gcc改为CC=arm-linux-gcc
#make && make install

5.yasm安装# ./configure --enable-shared --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --host=arm-linux
# make
# make install


6 x264安装#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/ --enable-shared --disable-asm
修改config.mak文件,红色字体是修改后的地方
将ARCH=ARM
CC=
arm-linux-gcc
LD=arm-linux-gcc -o
AR=arm-linux-ar rc
RANLIB=
arm-linux-ranlib
STRIP=arm-linux-strip

编译安装x264
#make && make install









回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-3 17:39 , Processed in 0.021612 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部