開發環境介紹:
主機操作系統: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界面
source code:解壓出來的opencv代碼目錄
build the binaries:手動創建的目錄,我在opencv源碼目錄下創建build-arm
2、Specify the generator of project
點擊上圖中Configure ,配置如圖:
選擇Unix Makefiles ,選中Specify options for cross-compiling,點擊 Next。
3、配置Target System、Compiler、Find Program/Library/Include
配置如圖:
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、設置編譯選項
勾上 BUILD_JPEG 和 BUILD_PNG ,根據需求也可以勾選其他選項。
配置安裝目錄,系統默認/usr/local,爲了避免交叉編譯後的庫替換原有的庫,我把路徑改爲 /usr/local/arm/opencv-arm
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主機上類似。
參考: