esp-idf开发遇到VSCode IntelliSense 无法识别 ESP-IDF 头文件[小智桌面屏幕]

博主最近在尝试复现小智桌面屏幕, 本人的开发环境是在虚拟机Ubuntu22.04中搭建esp-idf开发环境和samba服务器, 并且在windows主机上使用vscode ssh remote远程开发.

如图所示, 本来是正常的, 可能是载入项目的时候因为某种位置情况影响, 导致我的VS从的无法正确读取到对应的头文件, 这样搞得整个IDE的很多功能瘫痪了, debug什么的完全不方便, 后面发现是

vscode 自己有一个IntelliSense 功能, 是专门用来智能实现语法检查, 代码补全之类的功能的

1. 首先确保环境变量正确, 输入  echo $IDF_PATH  :

2. 删除或修正 VSCode 的旧配置

VSCode 使用 c_cpp_properties.json 文件配置 IntelliSense。可以通过以下方式修正:

  • 打开 VSCode 命令面板 Ctrl+Shift+P
  • 运行命令 C/C++: Edit Configurations (JSON),确认头文件路径和工具链。
  • 也可以Ctrl+P搜索 c_cpp_properties.json

如果找不到的话可以自行在.vscode文件夹下添加c_cpp_properties.json,如果.vscode文件夹也没有的话直接在项目文件夹下创建就好啦.

这里我直接指定了项目的includePath 和 browse:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/esp-idf/components/**",
                "${workspaceFolder}/esp-idf/components/esp32/include"
            ],
            "defines": [],
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64",
            "browse": {
                "path": [
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true
            },
            "compileCommands": "${workspaceFolder}/proj/DesktopScreen-debug/build/compile_commands.json"
        }
    ],
    "version": 4
}

3. (IntelliSense 正确配置必须!)使用 compile_commands.json

选择正确的 compile_commands.json 解决 IntelliSense 问题:

  • 打开命令面板 Ctrl+Shift+P,选择 C/C++: Select IntelliSense Configuration
  • 选择项目生成的 compile_commands.json 文件路径,如:
    Use ${workspaceFolder}/proj/DesktopScreen-debug/sample_project/build/compile_commands.json
    
    
    
    回车后显示这个画面:

直接选择第一个, 回车, 就指定了编译路径, 然后就搞定了, 其实也就是在c_cpp_properties.json中加入了一段配置.

"compileCommands": "${workspaceFolder}/proj/DesktopScreen-debug/build/compile_commands.json"

TIPS: 后面测试了一下, 发现这段compileCommands是一定要的, 不然IntelliSense就没法找到对应esp-idf 的一些依赖, 会报错.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值