需求 :
linux host : UBUNTU
opencv source : opencv 3.3.1.zip
CMAKE : apt-get install cmake cmake-qt-gui
若干 依賴庫
編譯 :
新建 ./build 文件夾
在 源碼 目錄 source 交叉編譯腳本 並執行 ./cmake-gui
在 where is source code 、 build the binaries 選擇源碼 build目錄
在 cmake-gui 中添加 Add Entry 選 FILEPATH : NAME =CMAKE_AR VALUE="/opt/poky/2.0.1/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar")解決
Cross compilation produces: Error running link command: No such file or directory
make VERBOSE=1
點 configure 選第三項 use toochain file 路徑 為 opencv-3.3.1/platforms/linux/aarch64-gnu.toolchain.cmake
取消 BUILD _TORCH_IMPORTER ,WITH_WEBP ,WITH_MATLAB , OPENCLAMDBLAS... 等會報錯的選項
選中 GTK_2_X
點generate
可能還會有其他小錯誤 ,
在 build 目錄 make make install
生成
把安裝包考到 nfs 中
$CXX open_img.c -o open_img -lopencv_highgui -lopencv_imgproc -lopencv_core
ps : 在編譯其他版本的 交叉工具編譯鏈 時 會出現 -march=armv8-a -mtune=cortex-a57.cortex-a53 --sysroot=/opt/poky/2.1.2/sysroots/aarch64-poky-linux:
需要在 cmake -gui 中 config 中設置 CMAKE_C_COMPILER_ARG1 CMAKE_CXX_COMPILER_ARG1 去掉 march mturne
12/7 更新
ffmpeg 方面 首先要 prefix設置一個 install 目錄 ,安裝ffmpeg
在 opencv 源碼路徑 source 一下 交叉工具編譯鏈 , /cmake-gui & 運行 cmake 設置 opencv 選項
添加 .so 文件
修改 opencv-2.4.13/modules/highgui/src/cap_ffmpeg_impl.hpp 中
添加 #define HAVE_FFMPEG_SWSCALE 1
注釋 // #error "libswscale is necessary to build the newer OpenCV ffmpeg wrapper"
添加 #include <libswcale/swcale.h>
解決在 編譯 highgui 模塊時候 報錯 關於 sws ....之類的錯誤
完成 編譯 make install
生成的 opencv 支持 ffmpeg