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

C/C++ 扩展智能提示太慢或无法解析项目

问题

C/C++ 扩展不解析项目,导致源码中的变量、函数都为灰色状态,无法进行跳转。

有时候 log 会报如下错误:

Attempting to get defaults from C++ compiler in "compilerPath" property: 'D:/Development/Tools/mingw64/bin/gcc.exe'
Compiler info database not connected - skipping load.
Compiler query command line: D:/Development/Tools/mingw64/bin/gcc.exe -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -gdwarf-4 -ggdb -mdisable-hardware-atomics -Og -fno-shrink-wrap -fmacro-prefix-map=D:/Development/Workspace/esp32_workspace/xiaozhi-esp32=. -fmacro-prefix-map=C:/Users/ShiinaKaze/esp/v5.4/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -m64 -Wp,-v -E -dM -x c nul
Failed to query compiler. Falling back to 32-bit intelliSenseMode.
Compiler query command line: D:/Development/Tools/mingw64/bin/gcc.exe -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -gdwarf-4 -ggdb -mdisable-hardware-atomics -Og -fno-shrink-wrap -fmacro-prefix-map=D:/Development/Workspace/esp32_workspace/xiaozhi-esp32=. -fmacro-prefix-map=C:/Users/ShiinaKaze/esp/v5.4/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -m32 -Wp,-v -E -dM -x c nul
Failed to query compiler. Falling back to no bitness.
Compiler query command line: D:/Development/Tools/mingw64/bin/gcc.exe -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -gdwarf-4 -ggdb -mdisable-hardware-atomics -Og -fno-shrink-wrap -fmacro-prefix-map=D:/Development/Workspace/esp32_workspace/xiaozhi-esp32=. -fmacro-prefix-map=C:/Users/ShiinaKaze/esp/v5.4/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wp,-v -E -dM -x c nul
[01m[Kgcc.exe:[m[K [01;31m[Kerror: [m[Kunrecognized command-line option '[01m[K-mlongcalls[m[K'
[01m[Kgcc.exe:[m[K [01;31m[Kerror: [m[Kunrecognized command-line option '[01m[K-mdisable-hardware-atomics[m[K'

原因

C/C++ 扩展用的语言服务器就是 clangd 的魔改,clangd 会先读取配置,然后再建立索引,这个过程需要一段时间。

如果右下角 language status 没有反应,前往 C/C++ 扩展的设置,将 logging level 调整为 debug 模式,方便查看 C/C++ 扩展运行情况。

在这里插入图片描述
c_cpp_properties.json 是一个很重要的文件,用于配置 C/C++ 扩展,所以按照要求填写,例如 ESP IDF 扩展自动生成的配置文件:

{"configurations": [{"name": "ESP-IDF","compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp-elf\\esp-14.2.0_20241119\\xtensa-esp-elf\\bin\\xtensa-esp32s3-elf-gcc.exe","compileCommands": "${config:idf.buildPath}/compile_commands.json","includePath": ["${config:idf.espIdfPath}/components/**","${config:idf.espIdfPathWin}/components/**","${workspaceFolder}/**"],"browse": {"path": ["${config:idf.espIdfPath}/components","${config:idf.espIdfPathWin}/components","${workspaceFolder}"],"limitSymbolsToIncludedHeaders": true}}],"version": 4
}
http://www.xdnf.cn/news/308485.html

相关文章:

  • 使用VMware Workstation pro 17.5.1在Windows上安装Ubuntu 24.04.2的 详细步骤
  • 第一章-语言基础\3.STL
  • RHCSA Linux系统 网络管理
  • Grafana-新增用户
  • 104二叉树的最大深度
  • 标签语句分析
  • 第11次:用户注册(简要版)
  • 【大模型面试】大模型(LLMs)高频面题全面整理(★2025年5月最新版★)
  • 13前端项目----购物车修改
  • 结合Hutool 突增突降检测的算法
  • Linuxweb服务的部署及优化
  • 网站主机控制面板深度解析:cPanel、Plesk 及其他主流选择
  • AIDC智算中心建设:存储核心技术解析
  • suna直接从agent启动时,死循环问题
  • “FATAL ERROR: Reached heap limit Allocation failed” NodeJS 错误解决方案
  • URP - 深度图
  • 多模态大语言模型arxiv论文略读(六十一)
  • 码蹄集——直线切平面、圆切平面
  • postgresql 创建、移出数据保留策略
  • WiFi那些事儿(八)——802.11n
  • 基于Anaconda的Pycharm环境配置
  • 【IP101】图像处理进阶:从直方图均衡化到伽马变换,全面掌握图像增强技术
  • 游戏的TypeScript(6)TypeScript的元编程
  • 高级java每日一道面试题-2025年5月03日-基础篇[反射篇-编码]-使用反射创建`java.util.Date`对象,并调用其无参构造方法。
  • 【PPT制作利器】DeepSeek + Kimi生成一个初始的PPT文件
  • 安全不止一层:多因素认证的实现与管理指南
  • 荣耀A8互动娱乐组件部署实录(第1部分:服务端环境搭建)
  • 学习人工智能开发的详细指南
  • Kubernetes弹性伸缩:让应用自动应对流量洪峰与低谷
  • 如何在 Vue3 中更好地使用 Typescript