news 2026/4/16 16:16:51

ESP-IDF组件编译规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESP-IDF组件编译规则

简单来说就是esp-idf的构建系统会自动编译components(名称固定)文件夹下面的CMakeLists.txt,通过CMake将组件放到项目中,优先编译我们创建项目中的components文件夹下的CMakeList.txt,然后在编译esp-idf架构中的components文件夹,我们自己创建的组件优先级大于esp-idf架构组件的优先级。

每次构建时,组件注册的核心作用就是告诉项目头文件路径、依赖库位置、链接规则,让项目能找到并调用组件功能;

代码编译分为两部分 —— 你的项目代码每次变更都会重新编译,ESP-IDF 内置组件或自定义组件的源码只要没改,就会直接复用之前的编译产物,不用重复编译,前提是都需要编译一次

先构建,把那些需要的驱动库都加载到项目里,在进行编译,我们用了那些组件,都需要在CMakeList.txt文件中写出来。

  • 构建启动后,先执行组件注册:按 “项目自定义components> ESP-IDF 内置components” 的优先级扫描所有组件,读取CMakeLists.txt,确定头文件路径、依赖关系、库文件位置,让项目 “认识” 所有可用组件。
  • 接着,构建系统会分析项目代码的依赖,识别出项目实际用到的组件,再执行编译:首次构建时,项目代码和所有被依赖的组件会全部编译;后续构建时,只有变更过的代码或组件会重新编译,未变更的直接复用旧产物。

main组件依赖所有组件,不需要声明,可以直接引用.h文件,其余我们创建的组件都需要先声明,在进行.h引用

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

Launch Template 和 ALB、Target Group、Auto Scaling Group 是什么关系?

一、Launch Template 的作用是什么? 一句话定义(面试版) Launch Template 是 EC2 实例的标准化启动配置,用来告诉 Auto Scaling“新实例该如何创建和配置”。 Launch Template 具体解决什么问题? Auto Scaling 不会“复…

作者头像 李华
网站建设 2026/4/16 12:20:35

【EI检索、长春线下+线上】第三届光电信息与光学工程国际学术会议(OIOE 2026)

光电信息技术和光学工程技术广泛应用于国民经济和国防建设的各行各业。近年来,随着相关产业的迅速发展,其已成为了社会进步的主要科学。人们对于信息的需求越大,光电也就越发成为重要的传输媒介。 “第三届光电信息与光学工程国际学术会议&a…

作者头像 李华
网站建设 2026/4/15 22:33:24

导师严选10个AI论文写作软件,专科生毕业论文必备!

导师严选10个AI论文写作软件,专科生毕业论文必备! AI工具如何助力论文写作?专科生必看的实用指南 在当前学术写作日益数字化的背景下,AI工具正逐渐成为学生和研究者不可或缺的助手。尤其是对于专科生而言,撰写毕业论文…

作者头像 李华
网站建设 2026/4/16 15:26:03

TCL华星APEX臻图:一个新品牌的诞生与源头探析

在当今高端显示领域,技术与体验的迭代日新月异,一个崭新品牌的亮相往往预示着行业价值导向的深刻变迁。TCL华星APEX臻图,正是这样一个在产业变革关键期应运而生的先进显示技术品牌。它的出现,并非凭空而来,而是根植于深…

作者头像 李华
网站建设 2026/4/16 11:02:01

告别代码报错!这款AI能听懂“人话”,一句话帮你搞定量化策略

从满怀希望到代码报错,新手量化交易的“第一道门槛”你是否也曾有过这样的经历:对量化交易充满热情,构思了一个绝妙的策略,却因为不会编程而寸步难行?或许你尝试过求助于通用的AI工具(比如ChatGPT&#xff…

作者头像 李华