ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VS Code C/C++ UI 配置指南

VS Code C/C++ UI 配置指南 目录概要一、前置条件二、打开 UI 配置界面三、UI 界面各配置项详解1. Configuration name配置名称2. Compiler path编译器路径⭐ 最关键3. IntelliSense mode智能感知模式⭐4. Include path包含路径⭐ 解决 #include 报错5. Defines预定义宏6. C standard / C standard语言标准7. Windows SDK 版本仅 Windows四、完整配置示例WindowsMinGW-w64Linux五、配合使用的另外两个配置文件六、常见问题速查七、总结概要VS Code 的C/C配置核心是c_cpp_properties.json​ 文件而微软官方扩展提供了图形化 UI 界面来编辑它无需手写JSON。这就使得使用VS Code 编写C/C程序时再也不用担心找不到文件引发的路径报错。一、前置条件安装编译器确保已安装 C/C 编译器即Windows安装了MSYS2并安装了mingw-w64-x86_64-gcc并将MSYS2 gcc/g所在的bin目录加入系统PATHLinux安装了gcc/g具体编译环境可以查看 VS Code 官网安装扩展在 VS Code 扩展市场搜索“C/C”安装 Microsoft 官方扩展验证终端执行gcc --version能看到版本号即可 如果命令面板里搜不到C/C: Edit Configurations (UI)通常是扩展没装好或版本过旧重启 VS Code 或重装扩展即可二、打开 UI 配置界面步骤操作1用 VS Code 打开你的 C/C项目文件夹2按CtrlShiftPmacOS 为CmdShiftP打开命令面板3输入并选择C/C: Edit Configurations (UI)这会打开一个图形化设置页所有修改自动保存到项目根目录的.vscode/c_cpp_properties.json文件中 。右上角还有一个“Open JSON”链接可以一键切换到直接编辑 JSON 的模式两者实时同步 。三、UI 界面各配置项详解1. Configuration name配置名称给当前配置起个名字如Win32、Linux、MacLinux、Mac、Win32是特殊标识扩展会自动识别对应平台2. Compiler path编译器路径⭐ 最关键填入编译器完整路径例如WindowsC:/msys64/mingw64/bin/gcc.exeLinux/usr/bin/gccmacOS/usr/bin/clangIntelliSense 会根据此编译器推断内置宏和标准库路径如果下拉为空检查编译器是否在PATH中3. IntelliSense mode智能感知模式⭐必须与编译器匹配否则会报错IntelliSense 模式与编译器路径不兼容IntelliSense mode​ 命名规则统一为操作系统-编译器-架构段位含义常见取值操作系统目标平台windows、linux、macos编译器用的哪家工具链gcc、clang、msvc架构CPU 位数/类型x8632位、x6464位、arm、arm64例linux-gcc-x64 Linux 系统 GCC 编译器 64 位架构最常用选项适用场景windows-gcc-x64Windows MinGW-w64最主流的 Windows C/C 开发linux-gcc-x64Linux 桌面 / WSL / 远程 SSH 开发你截图里的默认选中项macos-clang-x64macOS Intel 芯片开发macos-clang-arm64macOS M1/M2/M3 系列芯片开发windows-msvc-x64用 Visual Studio 的 MSVC 编译器Windows 官方工具链偶尔用到特殊需求选项什么时候用linux-clang-x64Linux 上用 Clang/LLVM 而非 GCCwindows-clang-x64Windows 上用 Clang如 LLVM 官方发行版windows-gcc-x86/linux-gcc-x86需要编译32 位程序时老硬件、嵌入式 PClinux-gcc-arm/arm64交叉编译在 x86 电脑上编译给 ARM 设备运行的程序树莓派、开发板带(legacy)的基本别碰clang-arm (legacy)以及其他带(legacy)后缀的(legacy) 旧版废弃模式微软保留只为兼容老项目。新项目一律选不带(legacy)的对应项即可 。特殊项${default}意思是让扩展自动推断。看你的编译器和系统对号入座你在用什么选这个Windows MinGWwindows-gcc-x64Windows VSwindows-msvc-x64Linux / WSLlinux-gcc-x64macOS Intelmacos-clang-x64macOS Apple Siliconmacos-clang-arm64交叉编译 ARMlinux-gcc-arm644. Include path包含路径⭐ 解决#include报错告诉 IntelliSense 去哪里找头文件出现绿色波浪线#include errors detected时就是这里没配好支持通配符**递归匹配子目录支持变量${workspaceFolder}— 项目根目录${env:VAR}— 系统环境变量${default}— 编译器默认路径示例${workspaceFolder}/** ← 项目内所有头文件 C:/libs/opencv/include ← 第三方库5. Defines预定义宏编译前就生效的宏等价于gcc -DDEBUG1 PLATFORM_WINDOWS用于条件编译#ifdef的代码高亮和跳转 。6. C standard / C standard语言标准Cc89、c99、c11、c17Cc98、c11、c17、c20按项目需要选择即可 。7. Windows SDK 版本仅 Windows使用 MSVC 时自动填充一般无需手动改 。四、完整配置示例WindowsMinGW-w64{configurations:[{name:Win32,includePath:[${workspaceFolder}/**],defines:[_DEBUG,UNICODE],browse:{path:[${workspaceFolder}/src,],limitSymbolsToIncludedHeaders:false},compilerPath:C:/msys64/mingw64/bin/gcc.exe,cStandard:c17,cppStandard:c17,intelliSenseMode:windows-gcc-x64}],version:4}Linux{configurations:[{name:Linux,includePath:[${workspaceFolder}/**],defines:[_DEBUG,UNICODE],browse:{path:[${workspaceFolder}/src,],limitSymbolsToIncludedHeaders:false},compilerPath:/usr/bin/gcc,cStandard:c11,cppStandard:c11,intelliSenseMode:linux-gcc-x64}],version:4}大家可以看到完整的配置中我补充了browse键这个键的作用是为了帮助大家点击第三方includePath下的include对应的.h文件无法跳转到对应的.c/.cpp文件我目前是在我的c_cpp_properties.json文件中添加了这个给大家发一下我的目录结构和c_cpp_properties.json内容project/ ├── include/ ├── src/ ├── README.md └── requirements.txt { configurations: [ { name: Linux, includePath: [ ${workspaceFolder}/include, ], defines: [ __linux__ ], browse: { path: [ ${workspaceFolder}/src, ], limitSymbolsToIncludedHeaders: false }, compilerPath: /usr/bin/g-11, cStandard: c11, cppStandard: c11, intelliSenseMode: linux-gcc-x64 } ], version: 4 }五、配合使用的另外两个配置文件UI 配置只解决代码感知问题要让程序编译运行和调试还需配置文件作用创建方式c_cpp_properties.jsonIntelliSense 智能补全UI 界面自动生成tasks.json定义编译命令调用 gcc菜单终端 → 配置默认生成任务launch.json调试配置GDB/LLDB按F5自动生成快速创建tasks.json打开一个.c文件 →终端 → 配置默认生成任务→ 选择C/C: gcc.exe 生成活动文件VS Code 会自动生成 。六、常见问题速查问题解决方案状态栏显示黄色Configure IntelliSense点它 → 选编译器或打开 UI 界面配置#include报绿色波浪线在 UI 的 Include path 中添加对应头文件目录提示IntelliSense 模式与编译器不兼容将模式改为与编译器匹配的gcc-x64/clang-x64改了配置不生效重启 C/C 语言服务器命令面板 →C/C: Reset IntelliSense Database七、总结CtrlShiftP→C/C: Edit Configurations (UI)是入口重点填好编译器路径 IntelliSense 模式 包含路径三项其余按需调整。这个 UI 本质就是c_cpp_properties.json的可视化编辑器右上角可随时切到 JSON 视图做高级修改。
返回列表