无法打开 源 文件 “esp_err.h“

ESP-IDF 开发环境。目标是:

  • 默认用 clangd 做语义分析
  • C/C++ 扩展不再重复画红线
  • clangd 能识别 ESP 的交叉编译器
  • 保留 ESP-IDF 扩展本身的功能

可以把这些内容放进 VS Code 的"用户设置(JSON)"里。

打开方法:

  1. Ctrl+Shift+P

  2. 输入 Preferences: Open User Settings (JSON)

  3. 回车

  4. 把下面这些配置合并进去

    {
    "C_Cpp.intelliSenseEngine": "disabled",
    "C_Cpp.errorSquiggles": "disabled",

    "clangd.path": "e:\Users\brain\.espressif\tools\esp-clang\esp-19.1.2_20250312\esp-clang\bin\clangd.exe",
    "clangd.arguments": [
    "--background-index",
    "--query-driver=**"
    ],

    "idf.currentSetup": "e:\Users\brain\esp\v5.5.2\esp-idf",
    "idf.portWin": "detect",
    "idf.customExtraVars": {
    "IDF_TARGET": "esp32"
    }
    }

说明一下这几项的作用:

  • C_Cpp.intelliSenseEngine: disabled
    让微软的 C/C++ 扩展不再接管语义分析。
  • C_Cpp.errorSquiggles: disabled
    不再出现它自己的重复红线。
  • clangd.path
    指向你机器上实际安装的 Espressif clangd。
  • clangd.arguments
    让 clangd 后台建索引,并允许识别交叉编译器。
  • idf.currentSetup
    指向你当前 ESP-IDF 安装目录。
  • idf.customExtraVars.IDF_TARGET
    默认目标芯片先用 esp32。

还要注意一件事:

这套"全局配置"只能解决"诊断引擎打架"的问题,但每个新工程最好仍然有自己的 build/compile_commands.json。也就是说,新项目第一次最好至少执行一次:

这样 clangd 才能准确知道头文件路径和编译参数。

如果想把新工程也完全免配置,建议以后每个 ESP-IDF 项目都带一个最小 .vscode/settings.json,内容像这样:

复制代码
{
  "idf.buildPath": "${workspaceFolder}/build",
  "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json",
  "clangd.arguments": [
    "--background-index",
    "--query-driver=**",
    "--compile-commands-dir=${workspaceFolder}/build"
  ]
}

可以把它当作自己的 ESP-IDF 工程模板。

相关推荐
wuyk55513 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
恒锐丰-罗生15 小时前
国产 H 桥驱动 SS6289|18V/4A 有刷电机驱动芯片性与应用分析 内置采样 + 多保护,门锁 / 机器人优选器件
驱动开发·嵌入式硬件·硬件工程
zcmodeltech18 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
云泽80819 小时前
深入浅出 STM32(十五):多通道GPIO驱动的软件抽象与实现
stm32·单片机·嵌入式硬件
嵌入式阿蔡20 小时前
OTA 实战五(收官):量产落地 Checklist —— 版本号 / 防回滚 / 灰度 / 断点续传
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
碧海银沙音频科技研究院21 小时前
基于杰理AC7016C的GTCRN门控卷积神经网络语音增强方法
人工智能·嵌入式硬件·语音识别
ACP广源盛1392462567321 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 大模型私有化部署中 DP 重定时器 GSV6155 的硬件链路价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源
遇雪长安1 天前
STM32_BOOT未引出_串口升级系统Bootloader方案
stm32·单片机·嵌入式硬件·bootloader
dcdannycheung1 天前
【无标题】
嵌入式硬件
自小吃多1 天前
Capture软件原理图添加元器件笔记
笔记·嵌入式硬件