Opencv2.0移植ARM全过程
- 格式:pdf
- 大小:378.15 KB
- 文档页数:10
2. 配置选项: $ ./configure --prefix=/home/liuxiu/opencv-arm --enable-pic –enable-shared --cross-prefix=armlinux- --host=arm-linux --extra-cflags=-I/home/liuxiu/opencv-arm/include --extra-ldflags=L/home/liuxiu/opencv-arm/lib --enable-shared --enable-pthread –disable-asm 出现 ./version.sh: 行 2: git: 未找到命令 Platform: ARM System: LINUX asm: no avs input: no lavf input: no ffms input: no mp4 output: no pthread: yes debug: no gprof: no PIC: yes shared: yes visualize: no
二、交叉编译 libjpeg
版本 jpegsrc.v6b,这些库都可以从官网上下载的。
1. 解压进入目录
2. 配置选项: $./configure –prefix=/home/liuxiu/opencv-arm –exec-prefix=/home/liuxiu/opencv-arm –-enableshared --enable-static 下面分别介绍这几个参数的作用: --prefix=/home/liuxiu/opencv-arm : 执行 make install 后,会将与体系无关的文件拷贝到此目录 下,具 体如下: /home/liuxiu/opencv-arm ....................................
2. 配置环境变量:为了使用方便,在 terminal 不用输入绝对路径,编辑/etc/bash.bashrc 文件 添加交叉编译链的路径到环境变量 Path 中,只要在这个文件中添加下面这 2 个语句即可: PATH=/home/liuxiu/opt/FriendlyARM/toolschain/4.5.1/bin$PATH export PATH
3. 编译安装 $ make $ make install 注意:编译成功后可到 opencv-arm 文件中查看相应的文件
三、交叉编译 yasm ,x264,xvid,ffmpeg
交叉编译 yasm 版本:yasm-0.7.2
1. 解压进入当前目录
3
Opencv2.0移植 ARM(Cortex A8)全过程 by HDU 刘秀14年9月10日
我所有的交叉编译库文件都将生成在 opencv-arm 文件夹中
一、交叉编译链的安装
根据友善之臂提供的文件有个 arm-linux-gcc 的文件夹拷贝到 ubuntu 中。
1. 解压:采用 terminal 的输入代码的形式比较烦琐,我都是直接手动点解压到当前用户主文 件夹(/home/liuxiu/)中,接下来的库文件都是解压到这主文件夹下进行配置安装的。
2. 配置选项: $ ./configure --enable-shared --prefix=/home/liuxiu/opencv-arm --host=arm-linux
3. 编译安装 $ make $ make install 交叉编译 x264 版本:x264-snapshot-20100211-2245
| +---bin............................................
| ---cjeg | ---djpeg | ---jpegtran | ---rdjpgcom | ---wrjpgcom +---lib........................................... | | ---libjpeg.so | ---libjpeg.so.62 | ---libjpeg.so.62.0.0 修改生成的 Makefile 文件: # The name of your C compiler: CC= gcc 该成 CC= arm-linux-gcc # library (.a) file creation command AR= ar rc 该成 AR= arm-linux-ar rc # second step in .a creation (use "touch" if not needed) AR2= ranlib 该成 AR2= arm-linux-ranlib 在/home/liuxiu/opencv-arm 目录下建立 man/man1,include,lib,bin 四个目录(好像是 jpeg 中 Makefile 不能创建这些目录)
Opencv2.0移植 ARM(Cortex A8)全过程 by HDU 刘秀14年9月10日
Opencv2.0移植 ARM(Cortex A8)全过程
前言
本人在移植 Opencv 到 ARM-linux 系统上经历坎坷的路程,由当初师兄手把手教如何 交叉编译移植一个不成功的 Opencv1.0的交叉编译库(ffmpeg 一直移植不成功)。到之后在 项目中需要 ffmpeg 解码,想方设法曾经利用 v4l2进行 camrea 数据的读取,奈何 mjpeg 解码 迟迟没有成功;项目上问题不得不解决,心想 Opencv 已经是很成熟肯文档帮助那些和我一样遇到 这样困难的人,如有错误请联系我将改正。
| +---include........................................
| ---jconfig.h | ---jerror.h | ---jmorecfg.h | ---jpeglib.h +---man............................................ | +---man1....................................... | ---cjeg.1 | ---djpeg.1 | ---jpegtran.1 | ---rdjpgcom.1 |
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/armnone-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=/ --disable-sjlj-exceptions --enable-__cxa_atexit --disablelibmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --withgmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static --withmpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-
1
Opencv2.0移植 ARM(Cortex A8)全过程 by HDU 刘秀14年9月10日
ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static --withcloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static --withmpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static --withlibelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static --enable-threads=posix --withlocal-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --disable-nls -enable-symvers=gnu --enable-c99 -del: posix gcc version 4.5.1 (ctng-1.8.1-FA) 至此交叉编译链安装完成。 注意:配置环境变量的时候需要在 root 用户下进行操作,在 ubuntu11.04之前都不能用 root 用户直接登录,可采用 terminal 下登录 root 进行环境变量的修改。