OpenCV交叉编译,OpenCV移植到嵌入式开发板

开发环境介绍:

主机操作系统:Ubuntu14.04 64位,由全志科技A40i开发板某卖家提供,使用其提供的系统环境与交叉编译器
目标平台:全志科技A40i,其实也可以类比迁移到其他嵌入式开发平台
opencv版本:3.2.0,源代码

提前编译全志科技A40i卖家提供的系统源码,我用的是linuxQt版本,编译中会出现qt5webkit-5.8.0错误,删除cqr40_linuxqt_bv3s/buildroot-2017.02.3/output/build/qt5webkit-5.8.0,重新编译系统即可。内存大于8G最好。主要为了使用交叉编译器gcc和g++。

移植步骤:

一、安装cmake、cmake-qt-gui以及一些需要的库

$ sudo apt-get install cmake
$ sudo apt-get install cmake-qt-gui
$ sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff4-dev libswscale-dev libjasper-dev()

二、利用cmake-gui生成Makefile

1、执行:$ sudo cmake-gui            //进入cmake-gui界面

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第1张图片

source code:解压出来的opencv代码目录

build the binaries:手动创建的目录,我在opencv源码目录下创建build-arm

2、Specify the generator of project

点击上图中Configure ,配置如图:

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第2张图片

选择Unix Makefiles ,选中Specify options for cross-compiling,点击 Next。

3、配置Target System、Compiler、Find Program/Library/Include

配置如图:

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第3张图片

Operating System:Linux或arm-linux,都一样

Processor:arm

Compiler C:选择交叉编译器的gcc,在cqr40_linuxqt_bv3s/root-2017.02.3/output/host/usr/bin目录下

Compiler C++:选择交叉编译器的g++,也在cqr40_linuxqt_bv3s/root-2017.02.3/output/host/usr/bin目录下

Target Root:选择交叉编译器的bin目录,我在/usr/local/目录下自建的arm/opencv-arm/bin目录。

点击 Finish

4、设置编译选项

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第4张图片

勾上 BUILD_JPEG 和 BUILD_PNG ,根据需求也可以勾选其他选项。

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第5张图片

配置安装目录,系统默认/usr/local,为了避免交叉编译后的库替换原有的库,我把路径改为 /usr/local/arm/opencv-arm

OpenCV交叉编译,OpenCV移植到嵌入式开发板_第6张图片

5、生成Makefile

点击 Configure,执行完后点击 Generate

三、编译安装opencv

$ cd /root/library/opencv/opencv-3.2.0/build-arm/

$ make

$ make install

/usr/local/arm/opencv-arm目录如下,将include和lib复制到嵌入式开发板中对应位置即可。注意在嵌入式开发板lib目录下要建立软连接。和host主机上类似。

参考:

https://blog.csdn.net/qq_30155503/article/details/79983630

https://blog.csdn.net/sanallen/article/details/81227182

你可能感兴趣的:(Linux)