经过一个多星期苦逼中,终于把Opencv交叉编译通过了。废话不多说,把我过程分享出来,希望能够让你们少走些弯路。不同的linux系统、opencv版本、arm编译器,opencv交叉编译方法会有所不同。本文提供一个已验证可实行的方法:Ubuntu14.04+Opencv2.4.9+arm-linux-gcc-4.3.2+2.8.12。
在 opencv 交叉编译之前要先进行依赖库的交叉编译,然后才能进行 opencv 库的交叉编译(因为opencv 依赖于很多库函数,如果不编译会造成,编译后的opencv 无法使用)。这里首先给出OpenCV 交叉编译时各个库的依赖关系:
OpenCV
|--------zlib
|--------jpeg
|--------libpng
|--------zlib
|--------tiff
|--------zlib
|--------ffmpeg
|--------x264
|--------xvidcore
首先感谢这位博主 http://blog.chinaunix.net/uid-28669227-id-5024889.html 本人已验证其方法可行,但由于其采用opencv2.0版本过老及没有采用CMake-gui来交叉编译,本人最终选择了更新的opencv版本。
安装依赖项
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
这几项与视频解码相关,不安装的话后面opencv make结果就会出现这样:
FFMPEG: NO
-- codec: NO
-- format: NO
-- util: NO
-- swscale: NO
-- gentoo-style: NO
ARM编译器安装:
将arm-linux-gcc-4.3.2.tar.gz在 /usr/local/arm/ 下解压,在 /root/.bashrc 添加环境变量
export PATH=$PATH:/usr/local/arm/4.3.2/bin arm编译器路径
export OPENCV_DEPEND=/usr/local/arm/opencv-depend opencv依赖库安装路径
export OPENCV_INSTALL=/usr/local/arm/opencv-install opencv安装路径
arm再按Tab键出现 arm-none-linux-gnueabi-gcc-4.3.2