idf 版本:5.0
开发环境:VSCode + Espressif 插件

问题描述:
在工程目录中,自己建立了新的文件夹,用于存放自己的代码。然而在自行建立的这个文件夹下的 c 文件中,添加头文件:#include "driver/gpio.h" 则编译报错,提示:fatal error: driver/gpio.h: No such file or directory
在 main 函数中,添加该头文件则没有任何报错
从该提示看,应该是包含路径设置的问题,我将添加的头文件修改为绝对路径:
#include "C:/Espressif/frameworks/esp-idf-v5.0/components/driver/include/driver/gpio.h"
编译通过,程序能正常执行,所以我判断,cmake 文件应该没有问题,
那么感觉应该是可以通过配置 c_cpp_properties.json 文件来设置,然后经过自己多种土方法的尝试后,依旧没能解决该问题,所以到论坛来请教。

  • Wireless-Tech
    感谢版主的回复
    环境的设置应该是没问题的,之前搭建环境的时候,发现现在的插件的版本,已经能将路径设置好(当然可以自行重新填写设定),因为按照教程想去设置这些配置的时候,发现已经都默认填写好了,且内容是正确的。
    Espressif IDF 版本:1.5.1
    VSCode 版本:1.75.1

    问题已经解决:
    在 idf 5.0 的版本中,已经不再将 driver 组件作为公共依赖项,所以使用的时候,必须在 Cmakelist 中声明依赖 driver 组件后才能使用。

    这里我犯了两个错误

    1. 我一直以为 driver 等基础组件是通用组件,原来不是,这货不属于通用组件
    2. 在文档别的地方中看到描述为,通用组件会一直包含在构建系统中,不需要手动添加,所以一直没往这方面想

    另外想吐槽就是这开发环境对小白确实不友好,另外关于“基于VSCODE的ESP32C3开发环境的搭建”的前言中提到“小编可以围绕这个主题轻松写下一篇1000字以上的论文”这里的1000建议加多两个0


Wireless-Tech 额,这教程对这问题貌似没有太大参考意义

    cjunrong 出现这个问题,可能是你没有对espressif的vscode插件做出正确的设置,而我列出的教程中就大量篇幅去设置vscode的espressif 插件,其中有部分就是填充你esp-idf的绝对路径。

      Wireless-Tech
      感谢版主的回复
      环境的设置应该是没问题的,之前搭建环境的时候,发现现在的插件的版本,已经能将路径设置好(当然可以自行重新填写设定),因为按照教程想去设置这些配置的时候,发现已经都默认填写好了,且内容是正确的。
      Espressif IDF 版本:1.5.1
      VSCode 版本:1.75.1

      问题已经解决:
      在 idf 5.0 的版本中,已经不再将 driver 组件作为公共依赖项,所以使用的时候,必须在 Cmakelist 中声明依赖 driver 组件后才能使用。

      这里我犯了两个错误

      1. 我一直以为 driver 等基础组件是通用组件,原来不是,这货不属于通用组件
      2. 在文档别的地方中看到描述为,通用组件会一直包含在构建系统中,不需要手动添加,所以一直没往这方面想

      另外想吐槽就是这开发环境对小白确实不友好,另外关于“基于VSCODE的ESP32C3开发环境的搭建”的前言中提到“小编可以围绕这个主题轻松写下一篇1000字以上的论文”这里的1000建议加多两个0


      撰写回复...