Opencv2.0移植ARM(Cortex A8)全过程

本文档详细记录了将Opencv2.0移植到ARM Cortex A8处理器的过程,包括环境配置、交叉编译链的安装、libjpeg、yasm、x264、xvid、ffmpeg的交叉编译,以及OpenCV本身的配置和编译。作者通过半个月的努力,最终成功完成了移植,并分享了遇到的问题及解决方案,旨在帮助遇到类似问题的开发者。
摘要由CSDN通过智能技术生成

 

http://download.csdn.net/detail/liu448077268/7889317 可以去此网址下载所有本文章

Opencv2.0移植ARM(Cortex A8)全过程byHDU刘秀14年9月10日

前言

      本人在移植OpencvARM-linux系统上经历坎坷的路程,由当初师兄手把手教如何交叉编译移植一个不成功的Opencv1.0的交叉编译库(ffmpeg一直移植不成功)。到之后在项目中需要ffmpeg解码,想方设法曾经利用v4l2进行camrea数据的读取,奈何mjpeg解码迟迟没有成功;项目上问题不得不解决,心想Opencv已经是很成熟肯定能配置成功ffmpeg的,就不断地百度经过半个月的编译终于成功了。于是写下这篇文档帮助那些和我一样遇到这样困难的人,如有错误请联系我将改正。

准备工作

      首先得选择一个linux系统,比如FedoraRedhatubuntu等等。讲讲我采用的环境,我也是属于windows这种手残党的,不肯舍弃windows系统。

PC主机:VMware+Ubuntu11.04上进行交叉编译

目标的ARM板:Smart210 with Linux3.0.8

交叉编译器:友善之臂官方提供的 toolchains 4.5.1

      我所有的交叉编译库文件都将生成在opencv-arm文件夹中

 

 

 

Opencv2.0移植ARM(Cortex A8)全过程byHDU刘秀14年9月10日

一、交叉编译链的安装

      根据友善之臂提供的文件有个arm-linux-gcc的文件夹拷贝到ubuntu中。

1.解压:采用terminal的输入代码的形式比较烦琐,我都是直接手动点解压到当前用户主文件夹(/home/liuxiu/)中,接下来的库文件都是解压到这主文件夹下进行配置安装的。

2.配置环境变量:为了使用方便,在terminal不用输入绝对路径,编辑/etc/bash.bashrc文件添加交叉编译链的路径到环境变量Path中,只要在这个文件中添加下面这 2个语句即可:

PATH=/home/liuxiu/opt/FriendlyARM/toolschain/4.5.1/bin$PATH

export PATH

3.编辑完毕后使用 source /etc/bash.bashrc命令执行以下这个文件,让设置生效,之后再输入:

$ arm-none-linux-gnueabi-gcc -v

如果输出下面的信息则表面设置成功:

Using built-in specs.

COLLECT_GCC=arm-none-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/home/liuxiu/opt/FriendlyARM/toolschain/4.5.1/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper

Target: arm-none-linux-gnueabi

Configured with: /work/toolchain/build/src/gcc-4.5.1/configure--build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu--target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.5.1--with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root--enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s--with-fpu=vfp --with-float=softfp --with-pkgversion=ctng-1.8.1-FA--with-bugurl=http://www.arm9.net/ --disable-sjlj-exceptions--enable-__cxa_atexit --disable-libmudflap--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'--with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static--with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static--with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static--with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static--with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static--with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static--enable-threads=posix--with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root--disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long

Thread model: posix

gcc version 4.5.1 (ctng-1.8.1-FA)

至此交叉编译链安装完成。

注意:配置环境变量的时候需要在root用户下进行操作,在ubuntu11.04之前都不能用root用户直接登录,可采用terminal下登录root进行环境变量的修改。

二、交叉编译libjpeg

版本jpegsrc.v6b,这些库都可以从官网上下载的。

1.解压进入目录

2.配置选项:

$./configure –prefix=/home/liuxiu/opencv-arm–exec-prefix=/home/liuxiu/opencv-arm –-enable-shared --enable-static

下面分别介绍这几个参数的作用:

--prefix=/home/liuxiu/opencv-arm :执行 make install,会将与体系无关的文件拷贝到此目录下,体如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值