Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>C/C++ 工程自动配置New to Visual Studio Code? Get it now.
C/C++ 工程自动配置

C/C++ 工程自动配置

cxy

|
35 installs
| (0) | Free
(个人自用)自动生成 compile_commands.json 并配置 VS Code 的 C/C++ 与 clangd 环境。支持 MTK(Cygwin)与信芯微(WSL)工程,自动识别工程类型与机型、排除非活动目录,多机型可选。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

C/C++ 工程自动配置

⚠️ 个人自用扩展(Personal Use):本扩展为个人内部使用开发,未面向公众发布或提供维护,仅供参考与自用。

自动为 C/C++ 工程生成 compile_commands.json,并配置 VS Code 的 C/C++ 与 clangd 环境,一键排除非活动机型/UI 目录,让代码补全、跳转与索引更精准。

支持 MTK 与 信芯微 两大类工程,自动识别工程类型与机型,无需手动折腾编译参数。


功能特性

  • 🏭 多工程类型自动识别
    • MTK 工程:MST9U7、MST9U6、970X —— Windows 下通过 Cygwin + make -n -B 捕获编译命令
    • 信芯微工程:XINCHIP —— Linux/WSL 下通过 build.sh 的 make 系统,make -n -B -k(dry-run)捕获编译命令
  • 📄 一键生成 compile_commands.json(不实际编译,速度快)
  • 🗂️ 自动排除非活动目录:只索引当前活动机型/UI 文件夹,避免多机型工程中无关代码干扰补全与跳转
  • 🎯 多机型可选:信芯微工程存在多个 build.sh(多机型)时,在侧边栏选择要生成的工程
  • ⚙️ 可定制 .clangd 模板:通过 VS Code 设置调整 CompileFlags、宏定义、排除规则
  • 🧭 工程环境选择:自动检测 / MTK(Cygwin)/ 信芯微(WSL),只检查所选环境的依赖

快速开始

  1. 打开你的 C/C++ 工程文件夹(信芯微工程可用 UNC 路径 \\wsl$\<发行版>\... 打开)。
  2. 点击侧边栏的「生成配置」按钮,或运行命令 C Auto Config: Generate compile_commands.json。
  3. 插件自动识别工程类型、捕获编译命令、生成 compile_commands.json,并配置排除规则。

侧边栏顶部可选择「工程环境」:自动检测 / MTK(Cygwin) / 信芯微(WSL)。 选择后只检查对应环境的依赖;「屏蔽 PMcode」选项仅对 MTK 工程显示。


信芯微(XinChip)工程说明

信芯微工程在 Linux/WSL 下使用 build.sh 编译。插件通过 WSL 调用其 make 系统生成配置:

  1. 打开信芯微工程(代码位于 WSL 内时使用 \\wsl$\<发行版>\... 打开)。
  2. 在侧边栏「信芯微环境检查」卡片中,通过「生成目标工程(build.sh)」下拉框选择要生成的工程(多机型时可选,选择自动保存)。
  3. 点击「生成配置」:插件读取 build.sh 的 ProjectConfig 解析全部 GR_* 宏(GR_BOARD_NAME/GR_OSD_NAME/GR_DataBase_NAME/GR_PANEL_NAME 等)作为环境变量, 在 WSL 的 build/ 目录执行 make -n -B -k debug(dry-run,不实际编译),完整枚举所有源码与正确变体路径,生成 compile_commands.json (等价于 bear 的完整度但不依赖 bear;不设置这些宏时 $(GR_BOARD_NAME) 等为空,会导致 Pinshare 路径缺失、user 源码漏抓)。
  4. 插件自动排除非活动目录:非活动机型(user/<厂商>/<机型>/、device/<厂商>/<机型>/)、out/、prebuilds/ 等; 并进一步对活动机型排除非活动的 OSD / DataBase / Board / Panel 变体子目录(如 DataBase/OSD_CaiXun、user/Comm/Board/GR_HG201、PanelList/LVDS_M238HCA... 等),只保留活动的一个。

活动变体由插件直接读取 build.sh 的 ProjectConfig 解析(ProjectConfig.h → GR_CUSTOM_PROJECT → ProjectConfig/<custom>.h 中的全部宏,含 #include "ProjectConfig/..." / #include "BoardConfig/..." 重定向链);这些配置头文件会加入 C_Cpp.default.forcedInclude 与 .clangd 的 -include 强制包含,语言服务器每次解析自动读取最新宏定义,改文件无需重新提取,不依赖 make 输出。

说明:扩展运行在 Windows(通过 wsl.exe 调用)时,生成的 compile_commands.json 路径会转换为 \\wsl$\<发行版>\... 形式,便于 Windows 侧 clangd / C/C++ 扩展解析;运行在 Remote-WSL 中则直接使用 Linux 路径。


环境要求

工程类型 编译环境
MTK Cygwin(Windows 下执行 make)
信芯微 WSL1 / WSL2(Windows 下通过 wsl.exe,或直接在 Linux / Remote-WSL 中运行)

另外需要安装 clangd 或 C/C++ 扩展以获得补全/跳转能力。


配置项

配置 说明
cAutoConfig.environment 工程环境类型:auto(自动检测)/ mtk / xinchip,默认 auto
cAutoConfig.cygwinRoot Cygwin 安装根目录(MTK 工程使用)
cAutoConfig.compilerPath 编译器完整路径(可选,默认自动拼接)
cAutoConfig.clangdTemplate 自定义 .clangd 模板(可选)
cAutoConfig.wslDistro 信芯微工程使用的 WSL 发行版名称,默认 Ubuntu
cAutoConfig.xinchipBuildDir 信芯微工程构建目录(相对工程根目录,默认 build)
cAutoConfig.xinchipTarget make 目标:debug / release,默认 debug
cAutoConfig.xinchipBuildSh 侧边栏选定的 build.sh 相对路径(生成时按该工程重新生成 out/.config)
cAutoConfig.xinchipJobs make 并行任务数(-jN),默认 0=自动使用 nproc,用于加速捕获
cAutoConfig.xinchipCaptureMode 捕获方式:dryrun(默认,make -n 快速无副作用)/ build(真实编译 + HEADER= 回显,bear 等价但会真实编译并生成产物)
cAutoConfig.extraDefines 用户自定义额外宏定义
cAutoConfig.excludePMcode 屏蔽 PMcode(MTK 工程)
cAutoConfig.debugLogging 启用调试日志输出

更新日志

变更记录见随扩展一同发布的 CHANGELOG.md 文件。

打包发布

个人自用扩展无公开仓库,打包时使用以下命令(已内置 --allow-missing-repository 避免仓库缺失警告):

npm run package:vsix
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft