Opencv移植到arm全过程

所需积分/C币:50 2013-05-17 08:10:11 169KB PDF
收藏 收藏
举报

讲述了怎样将opencv移植到arm上,非常详细。
OpenC移植到ARM全过程 by Ken Cheung2010-7-23 /root/ibjpeg-arm - bi eeg djpeg jpegtran range wrJpgcom ibjpeg. la ppeg. so libjpeg. So. 62 libjpeg. So.62.0.0 - enable- shared:用 GNU libtool编译成动态链接库。 4修改生成的 Makefile文件 The name of your C compiler CC=gcc it]x CC=/root/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc (根据你自己交叉编译器的位置修改) library (a file creation command AR= ar rc ik5* AR=/root/arm-none-linux-gnueabi/bin/arm- none- linux-gnueabi-ar rc 同上) second step in. a creation(use touch"if not needed) AR2= ranlib iX AR2=/root/arm-none-linux-gnueabilbin/arm-none- linux-gnueabi rani(同上) 5在/ root/libjpeg-arm目录下建立 man/man1 include,bbin四个目录 6# make make install 7将root/libjpeg-arm/include/中( config. h, error. h, jmorectg h, jpeglib. h)四个头文件拷 贝到:root/arm-none-linux-gnueabilarm-none| inux-gnueabi/inc|ude中。 将 /root/libjpeg- arm/lib中( libjpeg. la, libjpeg.so, libjpeg.so.2, libjpeg.so.62.0.0)四个库 文件拷贝到:/ root/arm-none -inux- gnueabi/ arm-none- inux-gnueabi/ib中 注意:执行以下命令检查生成的 jpeg. so是否为ARM版: OpenC移植到ARM全过程 by Ken Cheung2010-7-23 file libjpeg. so 以下为正确输出,否则检査交叉编译器路径以及 Makefile并重新编译 注意:执行完以上操作后执行以下命令检查库文件是否已正确安装: arm-linux-gcc-print-file- name=libjpeg. so 如果输出为" libjpeg.so"则说明没有正确安装,重复7步骡。 如果输出为"D| R/ibjpeg.so"则说明安装正确。 至此 libjpeg交叉编译完成。 交叉编译264,Xid, ffmpeg 为了使 OpencV能处理视频,我们要事先交叉编译 ffmpeg,而 ffmpeg又是依赖x264和 xvid的。 1下载yasm 到ht:!/ wwtortall. net/projects/yasm/wiki/Download下载yasm0.72(x264需要用 到的汇编编译器 configure --enable-shared -prefix =/rootarm-none-linux-gnueabi/arm-none-linux gnueabi/--host=arm-linux #o make make install 2交叉编译x264 2l] ftp: //ftp. videolan. org/pub/videolan/x 264/snapshots/T#X X264-snapshot-20060805- 2245tar.bz2,解压进入目录 (1).配置 # configure --prefix=/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/--enable shared (2.修改配置参数 修改 config. mak: prefix=/root/arm-none-linux-gnueabilarm-none-linux-gnueabi/ exec prefix=prefix) bindir=exec_prefix/bin libdir=exec prefix/lib includedin≡s{pref×}/ include #这里改为ARM ARCHEARM SYS=LINUX #这里改为 arm-linux-gcc CC=arm-linux-gCc #这里去掉 DHAVE MMXEXT-DHAVE SSE2 DARCH X86 CFLAGS=-Wall-L.-04-ffast-math -D X264 -DHAVE MALLOC H-DSYS LINUX DHAVE PTHREAD-S-fomit-frame-pointer LDFLAGS=-Im-lpthread -S As=nasm OpenC移植到ARM全过程 by Ken Cheung2010-7-23 ASELAGS=-02-f elf VEW=no GTK〓no EXE= VIs=no HAVE GETOPT LONG=1 DEVNULL=/dev/null CONFIGURE ARGS=--enable-shared--prefiX-root/arm-none-linux-gnueabi/ar none-linux-gnueabi/ SONAME=b×264.s0.49 default: S(SONAME 修改 Makefile,将66-68行的ar和 ranlib改为am下的: libx264. a:depend S(OBJS)S(OBJASM) arm-linux-ar rc libx264 a S (OBJS)(OBJASM) arm-inux-ranlib libx264a (3)编译安装 #t make t make install 这里可以在交叉编译链目录 root/arm-none- Iinux-gnueabi/ arm-none-inux- nuea的 ib下生成‖bx26450 3交叉编译ⅹvid 到htp:/ downloads. xvid.org/ downloads/ dcore-11.3argz下载xvd 下载xvid解压并进入buld/ generic 配置 #. /configure --prefix=root/arm-none-linux-gnueabi/arm- none-linux-gnueabil--disable assembly [解释]- disable- assembly因为wvid没有针对ARM的汇编优化,所以编译时必须关掉汇 编 修改 Makefile引用的 platform. inc文件,将CC=gcc改为CC= arm-inux-gcc make t make install 成功后进入 example文件夹 测试,输入 arm-linux-gcc-o Xvid encraw xvid encraw.c-Ic-Im-L. src/-L. build/generic/=build OpenC移植到ARM全过程 by Ken Cheung2010-7-23 -xvidcore 即可生成ⅹ vid encraw 这里可以在交叉编译链目录 oot/arm-none-linux-gnueabilarm-none-linux-gnueabil的 include,b下生成相应的头文件和库文件 4交叉编译 ffmpeg 到htt: download chinaunix. net/download. php?id=5532& ResourceD=2990在这个网址 上下载 ffmpeg-04.9-p20051120 tar. bz2,然后解压。 修改 configure文件,要修改的如下 由于c、ar、 ranlib、 strip都是交叉编译环境中的执行文件,可以这样配置 prefix="/root/arm-none-linux-gnueabl/arm-none-linux-gnueabi/ cross prefix="root/arm-none-linux-gnueabi/bin/arm-linux- cpu=arm 配置 configure --cpu=arm --cc-arm-linux-gcc--enable-shared --disable-ffserver --enable Xvid--enable-X264--enable-gpl --enable-pthreads--disable-strip make make install 这里可以在交叉编译链目录/ root/arm- none-inux- gnueabi/ arm-none-linux-gnueabi的 include,ib下生成相应的头文件和库文件 至此, OpencⅤ所依赖的库都交叉编译完成,并在交叉编译链中的 I include,bin, share,ib下 有相应的文件 四交叉编译 OpencV 下载 Opencv1.0.0源码htt:/Mww。 pencv。rgcn/ download/ opencv-1.0.0.tar.gz 解压进入目录配置 /configure --host=arm- none-linux-gnueabi--without-gtk--without-carbon --without quicktime--Without-1394libs--with-ffmpeg --without-python --without-swig --enable-static -enable-shared --disable-apps cXX-arm-none-linux-gnueabi-g++ CPPFLaGs- Vroot/arm-none-linux-gnueabilarm-none-linux-gnueabi/include LDFLAGS=-L/root/arm OpenC移植到ARM全过程 by Ken Cheung2010-7-23 none-linux-gnueabi/arm-none-linux-gnueabi/lib--with-v41--prefix/root/opencv-arm libdir=/root/opencv-arm/lib--includedir=/root/opencv-arm/include 说明: host=arm-none-inux- gnueabi:指出交叉编译arm平台 - without-gtk:忽略gtk+20 windows without- carbon:不使用 Mac os上的X库 --Without-quicktime vithout-1394libs --without-ttmpeg --without-python WIthout-SWIg - enable- static:生成静态库 - enable- shared:生成动态库 CXX= arm-none-linux-gnueabi-g++:指定编译工具 CPPFLAGS=-I/root/arm-none-linux-gnueabilarm-none-linux-gnueabi/include OpenCV会用到一些dev的包,如pngh, pegli. h,大部分头文件在/ usr/ing!ude下 -refx= root/opencv-arm:指定安装目录 libdir/ root/opencV- arm/ib:指定库文件安装位置 included= root/opencv- arm/include:指定包含文件安装位置 如果配置正确,会有下面信息 General configuration〓三=三三三====三===== Compiler arm-none-linux-gnueabi-g++ CXXFLAGS: -Wall-tno-rtti-pipe-o3-fomit-frame-pointer Install path /root/opencv-arm HighGUI configuration =========== Windowing system ------ Use Carbon / Mac OS X: no Use gtk+ 2 no Use gthread Image Io-- Ise libjpeg yes OpenC移植到ARM全过程 by Ken Cheung2010-7-23 Use zlib yes Use libpng yes Use libtiff no Use libjasper no Use libllmlmf Video vo Use quickTime/ Mac Os X:no Use xine. no Use ffmpeg es se dc1394& raw1394: no Use v4. /es Use v4 2. yes Wrappers for other languages ===================================== SWIG Python no Additional build settings == Build demo apps no Now run make 二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二三二〓 〓〓二二二二二二 make t make install arm上运行 OpenCv所需库: 1将 /root/opencv-arn/ib下生成的库文件 libcvaux. so 1.0.0 libc.so, 1.0.0 libcxcore. so, 1.0.0 lbhighgui. so. 1.0.0 libmlso, 1.0.0 拷出来全部重命名 *. so, 1 2加上之前的库文件,将 /root/arm-none-inux- gnueabi/arm-none-Iinux- gnueabi/下的 libjpeg,xvid,x264, ffmpeg厍都拷出来放去板子的/usr/ib或者/ib下,也可以复制到板子上 个文件夹,然后# xport LD LIBRARY PATH=$LD_ LIBRARY PATH / YOUR//D|R 3 OpencV所需厍总表: OpenC移植到ARM全过程 by Ken Cheung2010-7-23 名称 关基 G libavcodec.so 6MB到共宇体的链 lIbavcodec-Cys.so 76MB共亨库 a libayfarmat 50 17MB到共享阵的链 libavtormat-cys.so 17MB共享库 G libavutil so 518KB到共亨库的链核 libayutil Cvs so 548KB共享厍 libc. so. 1 10MB共亨库 libcvaux 50.1 7807KB共亨库 lbcxcere so 1 14MB共享库 ibhighgui. sc 1 1577KB共享厍 libjpeg. la 482字节| libtool共亨库 libjpeg. so 1481KB到共享库的链核 148LKB到共享库的 目 epeg. so.20 1481KB共享库 libel.so.1 3121KB共享库 目bx2645049 5952KB共享库 E libxvidcoreso4.1 4925KB共享库 编译源文件方法 arm-none-linux-gnueabi-g++ democ-o demo -/root/opencv-arm/include/opencv L/root/opencv-arm/lib-lcv-Icxcore -lpthread -Irt-Icvaux-Im-Ipng-ljpeg-IZ-Iml-Ihighgui 最后,将生成的二进制文件拷到板子上就可运行

...展开详情
试读 9P Opencv移植到arm全过程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    n73hua 挺有帮助的,楼主很友善!
    2014-07-01
    回复
    shifeilong1111111 很有用 谢谢
    2013-09-06
    回复
    img
    robotxiang

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    Opencv移植到arm全过程 50积分/C币 立即下载
    1/9
    Opencv移植到arm全过程第1页
    Opencv移植到arm全过程第2页
    Opencv移植到arm全过程第3页

    试读已结束,剩余6页未读...

    50积分/C币 立即下载 >