当前位置: 首页 > article >正文

ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告

问题背景:

        ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告:

解决办法:       

        在工程里面的.vscode文件夹下,检查是否存在c_cpp_properties.json文件,如果没有可以手动创建添加。如图所示:

{
    "configurations": [
        {
            "name": "ESP-IDF",// 配置名称
            "compilerPath": "${config:idf.toolsPathWin}\\tools\\riscv32-esp-elf\\esp-13.2.0_20240530\\riscv32-esp-elf\\bin\\riscv32-esp-elf-gcc.exe",// 编译器路径
            "includePath": [// 头文件搜索路径
                "${config:idf.espIdfPath}/components/**",
                "${config:idf.espIdfPathWin}/components/**",
                "${config:idf.espAdfPath}/components/**",
                "${config:idf.espAdfPathWin}/components/**",
                "${workspaceFolder}/**"
            ],
            "defines": [ // 宏定义
                "DEBUG"
            ],
            "cStandard": "c17", // C语言标准
            "cppStandard": "c++17", // C++语言标准
            "browse": { //用于控制符号数据库生成的设置(通常在大型项目中使用)。
                "path": [
                    "${config:idf.espIdfPath}/components",
                    "${config:idf.espIdfPathWin}/components",
                    "${config:idf.espAdfPath}/components/**",
                    "${config:idf.espAdfPathWin}/components/**",
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": false
            }
        }
    ],
    "version": 4
}

该json文件作用有以下几点:

作用

  1. 配置头文件路径
    指定编译器和项目依赖的头文件搜索路径 (includePathsystemIncludePath),使 VSCode 能正确识别项目中的符号和类型。

  2. 指定编译器路径
    指定编译器路径 (compilerPath),从而启用编译器特定的定义和语法解析。

  3. 定义宏
    指定项目中使用的宏定义 (defines),使 IntelliSense 能识别条件编译的代码。

  4. 设置编译标准
    定义 C/C++ 使用的语言标准(如 c99, c++17),使 VSCode 能正确解析代码语法。

  5. 管理多配置
    支持多种配置(configurations),可以为不同的操作系统或项目需求设置不同的编译选项。

  6. 优化开发体验
    通过正确配置,使开发者在 VSCode 中获得更准确的错误提示、跳转定义、符号重命名等功能。


http://www.kler.cn/a/472900.html

相关文章:

  • Mac中配置vscode(第一期:python开发)
  • Improving Language Understanding by Generative Pre-Training GPT-1详细讲解
  • 《C++11》右值引用深度解析:性能优化的秘密武器
  • 详细讲一下什么是闭包,为什么会产生闭包,闭包会导致什么,闭包可以帮助我们在开发中干什么
  • 《Spring Framework实战》4:Spring Framework 文档
  • 文献综述拆解分析
  • Docker 容器运行后自动退出的解决方案
  • MySQL 分库分表实战(一)
  • 无网络时自动切换备用网络环境
  • C++二十三种设计模式之迭代器模式
  • Python爬虫基础——XPath表达式
  • ffmpeg之h264格式转yuv
  • WEBRTC前端播放 播放器组件封装
  • 【Linux】深入理解文件系统(超详细)
  • 自动化执行 SQL 脚本解决方案
  • 十六、Vue 组件
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(26):数字签名
  • 【数据结构-堆】【二分】力扣3296. 移山所需的最少秒数
  • 牛客网刷题 ——C语言初阶(5操作符)——BC90 矩阵计算
  • 解决word桌面图标空白
  • UTTracker背景矫正模块详解:解决无人机追踪中的摄像头运动问题
  • Ruby语言的正则表达式
  • WebSocket 设计思路
  • 怎样用云手机进行海外社媒矩阵引流?
  • 【Linux】lnav - 适用于Linux和Unix的出色终端日志文件查看器
  • windows从0开始配置llamafactory微调chatglm3-6b