###基于Linux系统ARM平台交叉编译 opencv 3.1.0 ###
*执行环境是在Ubuntu Linux 12.04, 但也应该能在其他linux发行版本适用*
*(只是其他发行版本名字和跨平台工具不同而已)*
一.准备环境要求
1.Linux主机电脑
2. Git
3. CMake 2.6 或者更高版本
4. ARM跨平台工具: gcc, libstc++ 等
4.根据目标平台选择 gnueabi 或者 gnueabihf 编译工具
二.安装相关依赖软件
1.安装编译工具(根据不同目标平台自己选择)
sudo apt-get install gcc-arm-linux-gnueabi
或安装 gnueabihf:
sudo apt-get install gcc-arm-linux-gnueabihf
2.安装 pkgconfig;
3.安装Python 2.6 或更高版本;
4.安装可选择性是否安装软件
[可选安装软件1] 安装ffmpeg
或安装libav基于armeabi(hf)开发包
(libavcodec-dev, libavformat-dev, libswscale-dev)
[可选安装软件2] GTK+2.x 或更高版本, 包括头文件libgtk2.0-dev ;
[可选安装软件3] libdc1394 2.x;
[可选安装软件4] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev .
获取OPENCV 3.1.0源码:
A.可以通到官网下载源码OPENCV 3.1.0源码下载
B.或者启动Git客户端并且克隆openCV仓库获取最新的openCV
cd ~/ <工作目录>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
创建 OpenCV
用CMake创建OpenCV 编译环境
创建目录存放Cmake产生的Makefile、工程文件、目标文件和输出的二进制文件
例如可以输入如下命令建立编译环境
cd ~/opencv/platforms/linux
mkdir -p build_hardfp
cd build_hardfp
cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../..
Run make in build (<cmake_binary_dir>) directory:
```
cmake可选参数说明
-DCMAKE_TOOLCHAIN_FILE=OpenCV源码目录路径/platforms/linux/arm-gnueabi.toolchain.cmake OpenCV 源目录( 默认工具链是 gnueabihf EABI )
-DSOFTFP=ON (添加此参数是让cmake打开softfp )
使能优化硬件
编译器默认生成 armv5l 的代码而不是VFPv3 and NEON 扩展,可以添加
-DENABLE_VFPV3=ON 选项产生VFPv3代码
-DENABLE_NEON=ON 选项产成NEON SIMD 扩展
使用TBB支持多核ARM SoCs,可以添加如下两个选项使能此功能
-DWITH_TBB=ON
-DBUILD_TBB=ON
(要Cmake脚本[TBB源码下载](http://threadingbuildingblocks.org/%20TBB%E6%BA%90%E7%A0%81)下载TBB源码并编译它)