一、文件结构1.1 运行流程在终端中执行如下指令./build.shbuild.sh源码#!/bin/bash#删除build文件夹rm-rfbuild/#新建build文件夹mkdirbuild#切换到build文件夹cdbuild#指定编译链cmake-DCMAKE_TOOLCHAIN_FILE../toolchain-cortex-a7.cmake..#开始编译maketoolchain-cortex-a7.cmake源码# toolchain-cortexa7.cmake set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) # 指定交叉编译器前缀 set(CROSS_COMPILE arm-linux-gnueabihf-) # 指定 C 和 C 编译器 set(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc) set(CMAKE_CXX_COMPILER ${CROSS_COMPILE}g) # 指定链接器可选通常由编译器驱动 set(CMAKE_LINKER ${CROSS_COMPILE}ld) # 指定系统根目录 (Sysroot) set(CMAKE_SYSROOT /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi) # 设置搜索路径 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) # 设置编译标志可选通常 Poky 环境会自动处理但显式指定更安全 # 针对 Cortex-A7 NEON Hard Float set(CMAKE_C_FLAGS_INIT -marcharmv7-a -mfpuneon -mfloat-abihard) set(CMAKE_CXX_FLAGS_INIT -marcharmv7-a -mfpuneon -mfloat-abihard)CMakeLists.txtcmake_minimum_required(VERSION 3.10) project(led_ctrl LANGUAGES C CXX) # 设置标准 # set(CMAKE_C_STANDARD 11) # set(CMAKE_CXX_STANDARD 17) # 添加可执行文件 add_executable(${PROJECT_NAME} led_app.c)