文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

下面的步骤在 Ubuntu Linux 12.04已经测试过, 但是应该也能在其它Linux 发行版正常工作. 尽管其它发行版包的名称和交叉编译工具的名称可能会有所不同. ARM平台上有几个主流的 EABI 版本. 这篇教程是为 gnueabignueabihf 写的, 但是其它类似工具做些小的改动也应该可以正常工作.

前期准备

  • Linux系统的主机;

  • Git;

  • CMake 2.6或更高版本;

  • 交叉编译工具ARM: gcc, libstc++, 等. 你需要根据不同的目标设备选择相应的 gnueabignueabihf 工具. 通过命令行安装 gnueabi:

    sudo apt-get install gcc-arm-linux-gnueabi
    

    通过命令行安装 gnueabihf:

    sudo apt-get install gcc-arm-linux-gnueabihf
    
  • pkgconfig;

  • 主机上安装Python 2.6;

  • [可选] armeabi(hf)相关的ffmpeg 或 libav 开发包 : libavcodec-dev, libavformat-dev, libswscale-dev;

  • [可选] GTK+2.x或更高版本, armeabi(hf)相关的头文件(libgtk2.0-dev);

  • [可选] libdc1394 2.x;

  • [可选] armeabi(hf)相关的libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev 

第 1 段(可获 2 积分)

获取 OpenCV 源代码

你可以从sourceforge获取OpenCV最新的稳定版本,或从Git 仓库抓取最新的快照.

获取OpenCV最新的稳定版本

从 Git 仓库获取OpenCV的 Cutting-edge

打开 Git 客户端,并克隆 OpenCV仓库 

Linux下可以在终端下使用如下命令获取:

cd ~/<my_working _directory>
git clone https://github.com/Itseez/opencv.git

构建 OpenCV

  1. 创建一个构建目录, 转到当前目录并执行如下命令:

    cmake [<可选参数>] -DCMAKE_TOOLCHAIN_FILE=<OpenCV 源码目录>/platforms/linux/arm-gnueabi.toolchain.cmake <OpenCV 源码目录>
    

    工具链使用 gnueabihf EABI 其它默认. 为cmake命令添加 -DSOFTFP=ON 参数,用于打开 softfp 编译器.

    cmake [<some optional parameters>] -DSOFTFP=ON -DCMAKE_TOOLCHAIN_FILE=<path to the OpenCV source directory>/platforms/linux/arm-gnueabi.toolchain.cmake <path to the OpenCV source directory>
    

    例如:

    cd ~/opencv/platforms/linux
    mkdir -p build_hardfp
    cd build_hardfp
    
    cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../..
    
  2. 在构建目录中执行make (<cmake命令所在目录>) :

    make
    
第 2 段(可获 2 积分)

注意

你在生成库时可以通过安装/卸载 make 目标的方式去除符号信息,这个选项可以生成更小的库(二分之一小),不过会使调试更难。

打开硬件优化

根据目标平台架构的不同使用不同的指令集。编译器生成 armv5l 代码时默认没有 VFPv3 和 NEON 扩展。在 cmake 命令行中添加 -DENABLE_VFPV3=ON 选择生成 VFPv3 代码,添加 -DENABLE_NEON=ON 选择使用 NEON 使用 SIMD 扩展。

多核 ARM 系统级芯片也支持 TBB。添加  -DWITH_TBB=ON and -DBUILD_TBB=ON 就可以了。Cmake 脚本会从官方项目网站 http://threadingbuildingblocks.org/ 下载源码并编译。

第 3 段(可获 2 积分)

文章评论