嗯哼?这是去年挺郁闷的花了好一阵子时间才搞通,现在毕业设计做好,今天写论文正写到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板中即可。。。