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

news/2025/1/10 17:02:52/

问题背景:

        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.ppmy.cn/news/1562022.html

相关文章

升级 Spring Boot 3 配置讲解 — 新版本的秒杀系统怎么做?

学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕! 1. Spring Boot 3 升级指南 在升级 Spring Boot 3 之前,首先需要确保你的项目已经升级到 Java 17,因为 Spring Boot 3 不再支持 Java 8 和 Java 11。接下来&…

文件读写到SQLite数据库的方法

在 SQLite 数据库中,将文件读写到数据库的常见方法主要有以下几种: 1. 将文件以 BLOB 类型存储 BLOB(Binary Large Object) 是 SQLite 中的二进制数据类型,可以直接用来存储文件内容。 步骤: 创建表 创建一…

HTML+CSS+JS制作中国传统节日主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中国传统节日主题网站,包含首页、节日介绍页、民俗文化页、节日活动页、联系我们页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部横幅区 包含传统中国风格的网站标题中国传统…

解决Vscode中使用netdb.h的getaddrinfo和addrinfo会报错的方法

原文地址:https://kashima19960.github.io/2024/12/03/解决Vscode中使用netdb.h的getaddrinfo和addrinfo会报错的方法/,一般有最新的修改都是在我的个人博客里面,所以在当前平台的更新会比较慢,请见谅😃 前言 博主最近…

JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色

设置输出文件的列宽,防止文件过于丑陋 Sheet sheet workbook.createSheet(FileConstants.ERROR_FILE_SHEET_NAME); sheet.setColumnWidth(0, 40 * 256); sheet.setColumnWidth(1, 20 * 256); sheet.setColumnWidth(2, 20 * 256); sheet.setColumnWidth(3, 20 * 25…

【合作原创】使用Termux搭建可以使用的生产力环境(九)

前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境(八)-CSDN博客中我们讲到了如何安装IDEA社区版,并在Termux中安装VNC服务器,在proot-distro的Debian中启动xfce桌面,并通过这个方式解决了IDEA社区版中无…

『SQLite』子查询可以这样用

摘要:本节主要讲子查询的使用,可以在查询、更新、修改、删除等操作中使用。 什么是子查询? 子查询是一种在 SELECT-SQL 语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询(Sub Query&#…

中文博客排版指南

标题 正确:(Markdown 语法) # 文章的标题## 文章内容的一级标题### 文章内容的二级标题#### 文章内容的三级标题原则: (1)文章内容的标题一般用 ## 和 ###。为保证层级的简单,请尽量避免出现…