2026.03 VSCODE + ESP-IDF 之ESP32的项目结构 论 CMakeLists
前言好的让我们继续当运行完ESP-IDF的HelloWorld之后也许会成就感满满但接下来。对于几乎没学习过类似烧录体验的我简直是新手噩梦。在开始学习的时候头脑发热头晕眼花为了纪念头昏眼花的我故写下此文。在VSCode上使的代码编写相对简单而且还有AI帮忙。但其文件的管理和Cmake是不得不感觉到头昏脑胀的几个点在这里就着重介绍一下创建一个空白项目吧如果和上一篇教程一样创建了一个工作区记得切换一下侧边才有esp32的图标选择任意一个编译器。根据自己的芯片填好必备的信息。完成后点击打开项目就会打开一个新窗口。在最左侧的侧边栏第一个就可以看到项目的所有文件以树状的形式展开双击就可以打开。有很多前面带“.”的东西都是软件运行中自动生成的环境不用理删掉也会再生成不过可能就会慢。最主要的是main文件夹里面的main.c就是熟悉的主函数啦。指导一切的Cmake不过最重要的其实是CmakeLists文件这里有两份CmakeLists文件一份在外面类似于项目的说明书暂时不用理解外面这个不是很重要主要看main里面的说明书。Main文件的 CMakeLists.txt告诉编译器怎么把这个文件夹里的代码编译成模块。默认创建的项目是这样的。CmakeLists中的所有的操作都是基于当前文件所在的路径SRCS代表着当前路径的“main.c“文件会进行编译INCLUDE_DIRS代表着会使用后面那个字符串的路径进行“.h”文件的编译所以这里目前就是把main文件夹的.c和.h文件都说明好了。可能还是难以理解举个例子假如在main文件夹里面有个PAN文件夹里面有mod.c和他的头文件。只需要修改在main的CmakeLists文件在PAN文件夹里面也不需要一个CmakeLists因为整个main文件夹可以视为一个模组。一个模组只需要一个CmakeLists而且就放在文件夹打开后的目录下。那么就需要添加以Cmake文件为目录的找到mod.c的路径以及.h文件的路径那就是这样idf_component_register(SRCS main.c MOD/mod.c INCLUDE_DIRS . MOD)这样子编译就不会报错了。那添加一个组件刚刚我提到了组件是吧那么就创建一个吧~其实可以把Main文件夹也视为一个组件一个组件里面都有一个独立的Cmake文件用来指导文件的编译如果创建一个新的组件他的路径是固定的都是在components/组件名字有且仅有这个路径如果在其他路径大概是不认的虽然我也没试过同理我们也可以看到他的cmake文件都是基于当前路径添加的路径最后如果添加组件最好在整个项目开始前添加如果添加组件整个项目都需要删除构建点“垃圾桶”要不然会出现奇奇怪怪的bug去掉波浪线小技巧另外在开发过程中很可能会遇到经常出现莫名其妙没有写错或者头文件不认的情况这大概都是因为在链接的过程中出现犯病的问题解决办法也很简单就是一行代码。idf.py reconfigure个人理解就是把库文件都链接起来然后就消失啦。好了以上大概就是怎么解决一些奇怪问题和在真正学习esp32之前必备的前置知识了希望你看完能够有所收获。

相关新闻

企业级日志平台实战:ELK + Filebeat + Kafka + ZooKeeper

企业级日志平台实战:ELK + Filebeat + Kafka + ZooKeeper

一、整体架构服务器产生日志 → 日志采集 → 消息队列缓冲 → 日志清洗 → 存储检索 → 可视化展示plaintext业务/系统日志 → Filebeat(采集) → Kafka(削峰解耦) → Logstash(清洗格式化) → Elasticsear…

2026/7/4 12:23:51 阅读更多 →
基于微信小程序的社区养老服务系统的设计与实现

基于微信小程序的社区养老服务系统的设计与实现

一、项目介绍 本研究致力于探讨基于微信小程序的社区养老服务系统的设计与实现。在当前社会老龄化趋势日益加剧的背景下,传统的养老服务模式已难以满足老年人多元化、个性化的需求。因此,开发一种新型、高效、便捷的养老服务系统显得尤为迫切。 微信小程…

2026/5/17 11:52:43 阅读更多 →
打开软件就弹出msvcr110.dll如何修复? 附免费下载方法分享

打开软件就弹出msvcr110.dll如何修复? 附免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/7/4 6:48:48 阅读更多 →

最新新闻

CLIP、SigLIP与AIM三款视觉语言模型工程选型实战指南

CLIP、SigLIP与AIM三款视觉语言模型工程选型实战指南

1. 项目概述:三款视觉语言模型的实战对比,不是论文复述,是工程师手里的选型指南最近在做多模态内容理解项目时,团队卡在了图文匹配模块的选型上——到底是用CLIP这个“老大哥”,还是上SigLIP这个“新锐选手”&#xff…

2026/7/4 12:23:00 阅读更多 →
MIC1557与PIC18LF26K80硬件选型及定时系统设计

MIC1557与PIC18LF26K80硬件选型及定时系统设计

1. MIC1557与PIC18LF26K80的硬件选型解析MIC1557是一款微型CMOS RC振荡器芯片,采用SOT-23-5封装,工作电压范围2.7V-18V,静态电流仅200μA。与传统的555定时器相比,它省去了频率控制引脚和集电极开路放电引脚,但保留了阈…

2026/7/4 12:16:53 阅读更多 →
AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

1. 项目概述:当钓鱼攻击披上AI的“羊皮” 如果你还认为钓鱼邮件是那种满屏错别字、用蹩脚英文催你点链接的“垃圾”,那你的安全观念可能还停留在五年前。我干了十多年网络安全,亲眼看着攻击手段从“广撒网”的群发垃圾邮件,进化到…

2026/7/4 12:14:52 阅读更多 →
如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 12:14:52 阅读更多 →
量子科技中的多样性与包容性实践

量子科技中的多样性与包容性实践

1. 量子科技领域为何需要关注多样性与包容性?量子计算、量子通信等量子科技正在重塑未来技术格局。与传统学科不同,量子科技本质上是一门高度交叉的领域,融合了物理学、计算机科学、材料学、工程学等多个学科。这种交叉性决定了其发展特别依赖…

2026/7/4 12:12:52 阅读更多 →
终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…

2026/7/4 12:10:51 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻