aarch64 cross compile 交叉編譯 opencv


 需求 : 

    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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM