交叉编译示例:
project(qrcode)
cmake_minimum_required(VERSION 3.15)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
set(CMAKE_FIND_ROOT_PATH "aarch64-linux-gnu/libc")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_FLAGS "-march=armv8-a")
set(CMAKE_CXX_FLAGS "-march=armv8-a")
# cache flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE release CACHE STRING "Choose the type of build" FORCE)
endif()
if(NOT CMAKE_VERSION VERSION_LESS "3.15")
# enable CMAKE_MSVC_RUNTIME_LIBRARY
cmake_policy(SET CMP0091 NEW)
endif()
find_package(OpenCV REQUIRED PATHS /opencv-4.5.4/build/ NO_DEFAULT_PATH)
include_directories(/ncnn-master/build/install/include/ncnn)
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(/include)
link_directories(ncnn-master/build/install/lib)
link_directories(opencv-4.5.4/build/install/lib)
set(DEPS build/install/lib/libncnn${CMAKE_STATIC_LIBRARY_SUFFIX})
set(DEPS ${DEPS} ${OpenCV_LIBS})
AUX_SOURCE_DIRECTORY(./src SRCS)
add_library(qrcode SHARED ${SRCS})
target_link_libraries(qrcode ${DEPS})