目录
环境搭建
简单记录下自己遇到的问题:
①找不到头文件
②Cmake插件出现问题
小结
环境搭建
整体的环境搭建,网络上还是有很多教程的,这里就不重复造轮子了,可以参考下面的链接
【ESP32-IDF环境搭建之vscode环境】
官方也有出一个指导教程,可以作为辅助参考,基本还是比较顺畅的
快速入门 ESP编程指南
我选择的是ESP IDF + VScode,具体环境也可以用 ESP IDF+Espressif IDE 的官方套件组合,又或者是 Arduino+VScode 的开放生态环境进行开发
乐鑫官方 ESP-IDF,这是官方的首推的开发方式,能够最大限度发挥ESP32的性能,代价就是不方便或者说是开发不是那么高效;
乐鑫官方出品 Arduino core for the ESP32,官方出品的 Arduino 编程软件支持,上手简单,大部分编程语法和 Arduino 兼容,借助于 Arduino 生态,有非常丰富的资源可直接使用
每个组合各有各的优势,可以根据自己的开发习惯来选择。
环境搭好之后,可以去跑下例程,如果是默认安装路径的话,在下面这个位置应该可以找到“hello world”文件夹
C:\Espressif\frameworks\esp-idf-v4.3.2\examples\get-started
用vscode—打开文件夹—hello world,然后选择COM和esp模块,打开hello_world_main.c就可以编译和下载了,注意vscode最下方工具栏
简单记录下自己遇到的问题:
①找不到头文件
一般来说,初次编译完后,装了C/C++插件之后会有一个自动提示,然后点击“是”之后就自动解决了
但是我的就一直没有出现(可能是版本不同)网上也没有找到很好的解决方法
半夜,问了一位大佬,他说:
不需要任何插件,查看-命令面板-点击“添加vscode配置文件夹”,左下角点击 垃圾箱 清理一下,重新编译即可解决找不到头文件的问题。
然后C/C++插件弹出了自动配置的提示,然后成功解决!
然而,非常难过的是,过了一天,换了一个例程,又出现这个问题了,而且此方法居然失效了~又看了十几个贴子,尝试了各种方法:
-
先在Cmakelist中添加路径
EXTRA_COMPONENT_DIRS += $(PROJCT_PATH)/components/blink -
又尝试在.json文件中添加PATH路径
"C:/Espressif\frameworks/esp-idf-v4.3.2/components/**“ - 加了一个component文件夹,手动将官方idf一堆头文件中将用到的文件拖到了同一个层级的根目录文件夹中(其他头文件都识别出来了,但是freertos头文件死活识别不出来,也不能跳转到定义)
- 更换头文件命名方式 因为例程里面的#include用的“ ”索引方式,可能出现头文件覆盖问题,说不定因为之前配置过stm32,导致出现了的错误识别。
- 删掉.vscode文件夹,清除build文件,然后重启。寄希望于触发系统自动配置条件,获得正常流程中的弹窗选项(可是并没有出现)
- ...
以上方法,有些带来了一点效果(但也不完全),又触发了新的bug,由于理解尚浅,无法直击要害,只能先mark一下,以后熟练了再捣鼓。估摸着是是版本或者系统问题,别人的C/C++插件都会自动弹出选项、系统自动找到头文件路径,但是到了我这就需要一通操作,难道这台笔记本真的和ESP IDF无缘了吗?难道我就要换种方案了吗?
忽然想起来,昨天不是有个能跑起来的吗?(不知道怎么触发但是能够自动内联到esp-idf的头文件)那为什么不把昨天的研究一下,看看系统自动配置是怎么解决问题的。然后发现,系统弹出选项后的.json文件是不一样的,如下面的代码块:
//先使用 control+shift+p 搜索并点击:C/C++编辑配置(JSON)
//然后会发现出现了.vscode文件夹
//使用下面的代码替换 c_cpp_properities.json 文件里面的代码
{
"configurations": [
{
"name": "ESP-IDF",
"compilerPath": "C:\\Espressif\\tools\\riscv32-esp-elf\\esp-2021r2-8.4.0\\riscv32-esp-elf\\bin\\riscv32-esp-elf-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"includePath": [
"${config:idf.espIdfPath}/components/**",
"${config:idf.espIdfPathWin}/components/**",
"${config:idf.espAdfPath}/components/**",
"${config:idf.espAdfPathWin}/components/**",
"${workspaceFolder}/**"
],
"browse": {
"path": [
"${config:idf.espIdfPath}/components",
"${config:idf.espIdfPathWin}/components",
"${config:idf.espAdfPath}/components/**",
"${config:idf.espAdfPathWin}/components/**",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": false
}
}
],
"version": 4
}
复制粘贴后,完美解决了,于是将其存为副本,未来保命使用。
一个月后更新的新方法:
发现遇到这个问题的朋友还挺多的,交流之后又碰撞出了新的解决方案:
- 强上地址索引法(直接加绝对地址)
- 修改componet中的cmakelist法(神奇且有效)
②Cmake插件出现问题
按照流程配置好环境的时候,一般会自动下载一个Cmake tools,这个插件有时可能会出现意料之外的错误,可以在插件里面找到Cmake tools--右键 禁用工作区 再试一下。文章来源:https://www.toymoban.com/news/detail-806161.html
小结
整体的环境搭建来说还是比较顺利的,没有遇到非常奇怪的bug,不过相较于STM32的环境配置还是要麻烦一些,目前板子还没到,所以这两天先预热一下^ ^,下一篇会对整理《ESP32-C物联网开发实战》对原理和一些基础的代码板块进行分析。文章来源地址https://www.toymoban.com/news/detail-806161.html
到了这里,关于0·ESP IDF搭建VScode环境踩坑记(找不到头文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!