2026/4/16 14:47:11
网站建设
项目流程
网站建设200,建设厅电工证,国内单页网站,张家界seo排名解释 CMake 如何找到 driver_ecspi_MIMX8ML8.cmake#xff1a;
[2 tools called]
CMake 的 include() 通过 CMAKE_MODULE_PATH 查找文件。工作原理如下#xff1a;
CMake include() 的查找机制
1. 查找顺序
当执行 include(driver_ecspi_MIMX8ML8) 时#xff0c;CMake 按以下…解释 CMake 如何找到driver_ecspi_MIMX8ML8.cmake[2 tools called]CMake 的include()通过CMAKE_MODULE_PATH查找文件。工作原理如下CMakeinclude()的查找机制1. 查找顺序当执行include(driver_ecspi_MIMX8ML8)时CMake 按以下顺序查找如果文件名包含路径分隔符/或\直接使用该路径include(boards/armgcc/flags.cmake) # 直接使用相对路径如果文件名不包含路径分隔符在CMAKE_MODULE_PATH中搜索include(driver_ecspi_MIMX8ML8) # 在 CMAKE_MODULE_PATH 中搜索2. 在你的项目中的实际查找过程查看你的CMakeLists.txtset(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8/utilities/debug_console_lite ${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8/drivers ${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8 ${CMAKE_CURRENT_SOURCE_DIR}/SDK/components/uart ${CMAKE_CURRENT_SOURCE_DIR}/SDK/components/lists ${CMAKE_CURRENT_SOURCE_DIR}/SDK/CMSIS/Core/Include ${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8/utilities )当执行include(driver_ecspi_MIMX8ML8)时CMake 会在第 1 个目录查找SDK/devices/MIMX8ML8/utilities/debug_console_lite/driver_ecspi_MIMX8ML8.cmake未找到在第 2 个目录查找SDK/devices/MIMX8ML8/drivers/driver_ecspi_MIMX8ML8.cmake找到3. 两种使用方式对比方式一使用 CMAKE_MODULE_PATH推荐set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8/drivers ) include(driver_ecspi_MIMX8ML8) # 简洁不需要完整路径方式二直接指定路径include(${CMAKE_CURRENT_SOURCE_DIR}/SDK/devices/MIMX8ML8/drivers/driver_ecspi_MIMX8ML8) # 或者 include(SDK/devices/MIMX8ML8/drivers/driver_ecspi_MIMX8ML8)4. 为什么使用 CMAKE_MODULE_PATH简洁include(driver_ecspi_MIMX8ML8)比完整路径更短可维护路径集中管理修改时只需改一处符合 CMake 约定类似 C/C 的#include header.h查找机制5. 验证查找路径可以在 CMakeLists.txt 中添加调试信息# 查看 CMAKE_MODULE_PATH 的内容 message(STATUS CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}) # 查看实际找到的文件路径 include(driver_ecspi_MIMX8ML8) # CMake 会在找到文件时输出信息如果文件中有 message()总结CMAKE_MODULE_PATH相当于 CMake 的“搜索路径列表”include()会在这些路径中查找.cmake文件因此不需要写完整路径。