news 2026/7/10 1:54:17

CMake include() 的查找机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CMake include() 的查找机制

解释 CMake 如何找到driver_ecspi_MIMX8ML8.cmake

[2 tools called]

CMake 的include()通过CMAKE_MODULE_PATH查找文件。工作原理如下:

CMakeinclude()的查找机制

1. 查找顺序

当执行include(driver_ecspi_MIMX8ML8)时,CMake 按以下顺序查找:

  1. 如果文件名包含路径分隔符(/\),直接使用该路径

    include(boards/armgcc/flags.cmake) # 直接使用相对路径
  2. 如果文件名不包含路径分隔符,在CMAKE_MODULE_PATH中搜索

    include(driver_ecspi_MIMX8ML8) # 在 CMAKE_MODULE_PATH 中搜索

2. 在你的项目中的实际查找过程

查看你的CMakeLists.txt

set(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. 在第 1 个目录查找:SDK/devices/MIMX8ML8/utilities/debug_console_lite/driver_ecspi_MIMX8ML8.cmake(未找到)
  2. 在第 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文件,因此不需要写完整路径。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 8:13:26

被网友们的“Excel用法”惊到了!开窍之后,比用 VBA 还要香!

国内在excel这块&#xff0c;可能会用个vlookup或者数据透视表&#xff0c;就已经可以超越60%的人了。更何况还有那种为了学会自动化报表&#xff0c;又去学了VBA、python、selenum测试、html、js前端等等的人。但&#xff0c;其实稍微换个用法&#xff0c;甚至比用VBA和python…

作者头像 李华
网站建设 2026/7/10 11:40:24

直播课冷场终结者|魔果云课这些工具真的能重塑线上课堂吗?

今天结合真实教学场景&#xff0c;深度分析一套最近被教育圈频繁提及的工具——魔果云课。一、线上课堂的“沉默螺旋”是如何被打破的&#xff1f;传统直播课最怕提问无人应答&#xff0c;而魔果云课的答题器功能&#xff0c;实际上是通过技术手段完成了课堂反馈的“轻量化重构…

作者头像 李华
网站建设 2026/7/9 13:05:54

网络安全启航指南:为你整合从零开始的系统知识与必备工具合集

网络安全的全面解析 一、网络安全的概念与重要性 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务…

作者头像 李华
网站建设 2026/7/10 11:40:04

Langchain-Chatchat结合FastAPI构建高性能后端

Langchain-Chatchat 结合 FastAPI 构建高性能后端 在企业智能化升级的浪潮中&#xff0c;一个现实问题日益凸显&#xff1a;员工每天要面对堆积如山的内部文档——HR政策、IT操作手册、财务报销流程……而真正需要时&#xff0c;却总是“翻了半天找不到”。与此同时&#xff0c…

作者头像 李华