# ===== 目标平台 ===== set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) # ===== 工具链路径 ===== set(TOOLCHAIN_DIR $ENV{HOME}/aarch64_env/toolchain) if(NOT EXISTS "${TOOLCHAIN_DIR}") message(FATAL_ERROR "TOOLCHAIN_DIR not found: ${TOOLCHAIN_DIR}") endif() # ===== sysroot ===== set(CMAKE_SYSROOT ${TOOLCHAIN_DIR}/aarch64-linux-musl) # ===== 编译器 ===== set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-g++) # ===== binutils(强烈推荐)===== set(CMAKE_AR ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-ar) set(CMAKE_NM ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-nm) set(CMAKE_RANLIB ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-ranlib) set(CMAKE_STRIP ${TOOLCHAIN_DIR}/bin/aarch64-linux-musl-strip) # ===== 静态链接 ===== set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(BUILD_SHARED_LIBS OFF) # ===== 查找规则(防止宿主污染)===== set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) 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_FIND_ROOT_PATH_MODE_PACKAGE ONLY)