1.下載opencv源碼
https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/
2.下載cmake-gui
在ubuntu虛擬機上安裝cmake-gui,apt-get install cmake-qt-gui,並運行cmake-gui
安裝gtk等:apt-get install libgtk2.0-dev pkg-config
3.交叉編譯opencv
3.1 導入hisi編譯器路徑
下圖為參考,我實際的是himix100。
CMAKE_C_FLAGS和CMAKE_CXX_FLAGS 增加-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4
勾選Release
CMAKE_EXE_LINKER_FLAGS 增加 -lpthread -lrt -ldl
去除with項的依賴,精簡opencv大小
選擇生成的靜態庫還是動態庫,這里我編譯的是靜態庫。
根據需要勾選依賴庫,是否編譯為一個文件
點擊Generate
生成后,到build路徑執行make -j8,編譯生成lib下的庫
4.精簡動態庫
將生成的libopencv_world.a鏈接到自己的代碼編譯為so后,可以使用arm-himix100-linux-strip libxxxx.so再精簡生成的動態庫,以便在3518下可以放得下。
經過測試,增加CMAKE_C_FLAGS和CMAKE_CXX_FLAGS 增加-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4編譯優化,可以使opencv運行時間減少一半。
移除with項依賴和選擇所需的庫,編譯成靜態庫.a文件再鏈接自己的代碼編譯成動態庫,可以大大減少生成庫的大小。
參考: