前言
将opencv移植到某個平台,無非就是用該平台對應的編譯器将opencv源代碼編譯成so庫。 這裡的target平台是hi3519A,是以得用交叉編譯器arm-himix200-linux交叉編譯器。
準備工作
1)安裝交叉編譯器,這個海思SDK說得很明白,也可以參考我之前的系列(三)Ubuntu18.0.4上編譯Hi3519AV100 uboot和kernel
2)在ubuntu上安裝cmake-gui: sudo apt-get install cmake-gui
3)下載下傳opencv及contrib源代碼
運作cmake
運作cmake-gui,彈出如下界面,并輸入源代碼和cmake build出來的目錄。注意,第二個目錄(build_hi3519A)是自己手動建立的。
點選configure,首先要選擇交叉編譯器平台,如下圖所示。
點選finish後會configure一會直到成功。
選擇install_prefix。 install_hi3519A也是自己建立的,路徑可改。後面的make install 會把編譯好的opencv libs拷貝到該目錄下。
将opencv_contrib子產品也編譯進來
為防止後續源代碼編譯錯誤,還得加上下面配置
保險起見,添加交叉編譯器root 目錄
配置完成後點選generate來生成可編譯得opencv代碼。
編譯
進入build_hi3519A目錄 敲入指令: make -j8
編譯過程中會遇到下面編譯錯誤
解決辦法如紅框所示(common.cc)
測試
編譯成功後,可以寫如下一個小程式在海思平台上運作來測試opencv移植是否成功
編譯指令如下,另外要注意得是,需要将libopencv_world.so拷貝到闆子系統目錄/lib下