Opencv2.0移植 ARM(Cortex A8)全过程 by HDU 刘秀14年9月10日
1
Opencv2.0移植 ARM(Cortex A8)全过程
前言
本人在移植 Opencv 到 ARM-linux 系统上经历坎坷的路程,由当初师兄手把手教如何
交叉编译移植一个不成功的 Opencv1.0的交叉编译库(ffmpeg 一直移植不成功)。到之后在
项目中需要 ffmpeg 解码,想方设法曾经利用 v4l2进行 camrea 数据的读取,奈何 mjpeg 解码
迟迟没有成功;项目上问题不得不解决,心想 Opencv 已经是很成熟肯定能配置成功 ffmpeg
的,就不断地百度经过半个月的编译终于成功了。于是写下这篇文档帮助那些和我一样遇到
这样困难的人,如有错误请联系我将改正。
准备工作
首先得选择一个 linux 系统,比如 Fedora、Redhat、ubuntu 等等。讲讲我采用的环
境,我也是属于 windows 这种手残党的,不肯舍弃 windows 系统。
PC 主机:VMware+Ubuntu11.04上进行交叉编译
目标的 ARM 板:Smart210 with Linux3.0.8
交叉编译器:友善之臂官方提供的 toolchains 4.5.1
我所有的交叉编译库文件都将生成在 opencv-arm 文件夹中
一、交叉编译链的安装
根据友善之臂提供的文件有个 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/ar
m-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-
评论0