1. 程式人生 > >在X86上交叉編譯ARM64 linux上的NCNN

在X86上交叉編譯ARM64 linux上的NCNN

1、準備編譯器和sysroot環境,下載地址為:https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/

2、解壓縮上述兩個壓縮包,並將gcc編譯器加入系統可執行程式搜尋路徑中 export PATH=$PATH:~/work/linaro/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu/bin
3、根據網上提供的配置CMakelist進行交叉編譯的方法,修改ncnn工程的主CMakelist.txt檔案,在檔案開頭新增以下內容: SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER   aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
SET(CMAKE_FIND_ROOT_PATH "~/work/linaro/sysroot-glibc-linaro-2.25-2017.08-aarch64-linux-gnu")
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
4、執行正常的編譯操作,編譯時會遇到類似錯誤: fatal error: opencv2/core/core.hpp: No such file or directory 此時需要先將opencv交叉編譯,將編譯完成的庫和標頭檔案放到systroot目錄即可。