OpenCV在ARM平台上的移植

嗯哼?这是去年挺郁闷的花了好一阵子时间才搞通,现在毕业设计做好,今天写论文正写到OpenCV的移植,所以就写到博客里面给大家分享分享啦。。

测试环境:ubuntu 12.04 LTS

opencv版本:1.0

交叉编译器版本:4.5.1

步骤如下:

解压opencv-1.0.0.tar.gz,并进入目录,执行以下命令。

#./configure--host=arm-linux --without-gtk --without-carbon --without-quicktime--without-1394libs --with-ffmpeg --with-v4l2 --without-python --without-swig--enable-static --enable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/linux-gnueabi/includeLDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/linux-gnueabi/lib--prefix=/root/opencv-arm --libdir=/root/opencv-arm/lib -includedir=/root/opencv-arm/include

命令说明:

--host=arm-linux:指出交叉编译arm平台

--without-gtk:忽略gtk+2.0windows

--without-carbon:不使用Mac OS上的X库

--without-quicktime:不使用quicktime解码

--without-1394libs:不使用1394设备

--without-ffmpe:不使用ffmpeg

--without-python:不使用python语言

--without-swig:不使用swig接口

--enable-static:生成静态库

--enable-shared:生成动态库

CXX=arm-linux-g++:指定编译工具

CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/linux-gnueabi/include:OpenCV会用到一些dev的包,如png.h和jpeglib.h,大部分头文件在/usr/include下

--prefix=/root/opencv-arm:指定安装目录

-libdir=/root/opencv-arm/lib:指定库文件安装位置

--includedir=/root/opencv-arm/include:指定头文件安装位置

这样终端里面便会打印出所有的配置信息,如下:

Generalconfiguration =========================================

Compiler:arm-linux-g++

CXXFLAGS:-Wall -fno-rtti -pipe -O3 -fomit-frame-pointer

Installpath: /root/opencv-arm

HighGUIconfiguration ========================================Windowing system--------------

UseCarbon / Mac OS X: no

Usegtk+ 2.x: no

Usegthread: no

ImageI/O -------------------------

Uselibjpeg: yes

Usezlib: yes

Uselibpng: yes

Uselibtiff: no

Uselibjasper: no

UselibIlmImf: no

VideoI/O -------------------------

UseQuickTime / Mac OS X: no

Usexine: no

Useffmpeg: yes

Usedc1394 & raw1394: no

Usev4l: yes

Usev4l2: yes

Wrappersfor other languages ==================================

SWIG

Pythonno

Additionalbuild settings ======================================

Builddemo apps no

Nowrun make ...

=========================================================

如果打印的配置信息没错的话,那么便可以执行make编译,大概需要编译20分钟,出现如图4.5的错误。

图4.5编译OpenCV出错

解决办法,就是找到 ./../cxcore/include/cxmisc.h文件中第133行的#elif 改成 #else即可。然后重新make编译通过后,执行  make install安装完成即可。

如下图所示:



将/root/opencv-arm/lib里的 

libcvaux.so.1.0.0 

libcv.so.1.0.0 

libcxcore.so.1.0.0 

libhighgui.so.1.0.0 

libml.so.1.0.0 

拷出来全部重命名为

*.so.1

然后拷贝到arm板中即可。。。



你可能感兴趣的:(嵌入式linux相关,OpenCV)