Visual Studio Code运行 C/C++ 配置

Visual Studio Code运行 C/C++ 配置

Visual Studio Code运行 C/C++ 配置

安装C++插件

image.png

如上图,请安装:

  • C/C++
  • C/C++ Extension Pack

两个插件。 其中C/C++ Extension Pack包含图中的:C/C++ ThemesCMakeCMake Tools 3个插件。

如果没有安装完全,请手动搜索插件名称进行安装。

配置C++插件

前提:下载mingw64并配置环境变量,请确保在系统内已经配置完成了g++编译器。
需要配置三个json格式文件。如下:
① tasks.json : 编译器构建 配置文件 ;
② launch.json : 调试器设置 配置文件 ;
③ c_cpp_properties.json : 编译器路径和智能代码提示 配置文件 ;

在Visual Studio Code中,对于 C++ 这类编译型语言,“构建”(编译代码)和 “调试”(运行并检查程序)是两个独立但又需要协作的过程。tasks.json 和 launch.json 就是分别管理这两个过程的配置文件。

通过VSCode,打开代码的工程文件夹,如果不存在请创建一个文件夹,用以后续存放代码文件(不要带上中文)

比如,我的代码全部存放在:D:\C++Codes\demo_test

img


在这里插入图片描述
在这里插入图片描述

在代码文件夹内,新建文件夹,名称:.vscode

在.vscode内,创建3个文件,并复制如下内容:

文件1:c_cpp_properties.json
c_cpp_properties.json 是 Visual Studio Code (VSCode) 中用于支持 C/C++ 编程的一个重要配置文件,由微软官方提供的 C/C++ 扩展生成并维护。其主要作用包括:

  • 配置 IntelliSense:通过设置编译器路径、头文件搜索路径等信息,使得 VSCode 能够提供高效的代码补全、代码跳转等功能。
  • 配置编译器:指定编译器类型和版本,确保代码分析和调试信息与实际编译器一致。
  • 配置调试和运行环境:为不同的操作系统和环境(如 Windows、Linux、macOS)定制不同的编译和运行配置。
在这里插入图片描述

或者按 Ctrl + Shift + P ,选中C/C++:编辑配置(UI),也会自动会生成.vscode文件夹和包含c_cpp_properties.json文件

在这里插入图片描述


在这里插入图片描述


c_cpp_properties.json
内容:

{"configurations":[{"name":"Win32","includePath":["${workspaceFolder}/**"],"defines":["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion":"10.0.17763.0","compilerPath":"D:\\ProgramData\\mingw64\\bin\\g++.exe",/*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/"cStandard":"c11","cppStandard":"c++17","intelliSenseMode":"${default}"}],"version":4}

关键字段详解(./vscode/c_cpp_properties.json)
其中,configurations 是一个配置数组,可以为不同的平台和环境定义多个配置。name 是配置的名称,includePath 列出包含路径,defines 定义宏,compilerPath 指定编译器路径,cStandard 和 cppStandard 设定语言标准,intelliSenseMode 指定 IntelliSense 的工作模式。合理配置此文件有助于提高开发效率和代码质量。
请修改compilerPath对应的路径,修改为自己系统中安装mingw中g++程序的位置

如:

  • 我的mingw安装在:D:\ProgramData\mingw64
  • 所以,我应该填入的配置内容是:D:\\ProgramData\\mingw64\\bin\\g++.exe

注意,所有的路径符号均为:\\

文件2launch.json (或者点击上方工具栏中的添加配置,也会生成launch.json)。
该文件告诉 VS Code 的调试器(Debugger)如何启动、附加和控制你的程序。

img

launch.json内容

{"version":"0.2.0","configurations":[{"name":"g++.exe build and debug active file","type":"cppdbg","request":"launch","program":"${fileDirname}\\${fileBasenameNoExtension}.exe",// 程序路径必须和 tasks.json 的输出路径完全一致"args":[],"stopAtEntry":false,"cwd":"${workspaceFolder}",// 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 "environment":[],"externalConsole":true,"MIMode":"gdb","miDebuggerPath":"D:\\ProgramData\\mingw64\\bin\\gdb.exe",/*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/"setupCommands":[{"description":"为 gdb 启用整齐打印","text":"-enable-pretty-printing","ignoreFailures":true}],"preLaunchTask":"task g++"// 【核心修正】预启动任务的 label 必须和 tasks.json 中的一致}]}

关键字段详解(./vscode/launch.json)
“name”: “g++.exe build and debug active filet” 作用:此调试配置的名称。它会显示在 VS Code 左侧 “运行和调试” 面板的下拉菜单中。

“program”: “${fileDirname}\${fileBasenameNoExtension}.exe” 作用:要启动并调试的程序的完整路径。这个路径必须与 tasks.json 中 -o 参数指定的输出路径完全一致。这是确保“前厅”能拿到“后厨”刚做好的那道菜的关键。

“cwd”: “${workspaceFolder}” 作用:为你正在调试的程序设置工作目录。确保它与构建时的工作目录一致,可以避免很多潜在问题。

“externalConsole”: true 作用:true 表示启动调试时,会弹出一个独立的外部控制台窗口(Windows上是cmd.exe或powershell)来运行你的程序,而不是使用 VS Code 内置的“调试控制台”。

“preLaunchTask”: “Build Calculator Project” 作用:连接“后厨”与“前厅”的桥梁。它告诉调试器:“在启动 program 之前,请先去 tasks.json 文件里找到 label 为 Build Calculator Project 的那个任务,并执行它。” 这确保了你每次调试的都是最新编译的版本。

请修改miDebuggerPath对应的路径,修改为自己系统中安装mingw中gdb.exe程序的位置
如:

  • 我的mingw安装在:D:\\ProgramData\\mingw64
  • 所以,我应该填入的配置内容是:D:\\ProgramData\\mingw64\\bin\\gdb.exe

注意,所有的路径符号均为:\\;2、"preLaunchTask"的内容要与task.json中的"label"内容相同。

文件3tasks.json (或者点击上方“终端”栏中的“配置任务”,也会生成tasks.json)
该文件定义了 VS Code 如何调用外部工具(如编译器 g++)来执行任务。我们的核心任务就是编译源代码。

img

tasks.json内容

{"version":"2.0.0","tasks":[{"type":"shell","label":"task g++","command":"D:\\ProgramData\\mingw64\\bin\\g++.exe",/*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/"args":["-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe","-I","D:\\C++Codes\\C++Study",/*修改成自己放c/c++项目的文件夹,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/"-std=c++17"],"options":{"cwd":"D:\\ProgramData\\mingw64\\bin"/*修改成自己bin目录,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/},"problemMatcher":["$gcc"],"group":"build",}]}

关键字段详解(.vscode/tasks.json)
“label”: “task g++” 作用:任务的 “名字”,一个人类可读的标签。这个名字非常重要,因为 launch.json 将通过它来调用此任务。

“command”: “D:\ProgramData\mingw64\bin\g++.exe” 作用:要执行的外部命令,这里是你的 g++.exe 编译器的完整路径。

“args”: [ … ] 作用:一个字符串数组,包含了所有传递给 command 的命令行参数。

-g:告诉编译器生成调试信息,这是让 GDB 调试器能够工作的关键。 “ w o r k s p a c e F o l d e r / m a i n . c p p " , . . . :核心修改。这里我们明确列出了所有需要一起编译的源文件。 {workspaceFolder}/main.cpp", ...:核心修改。这里我们明确列出了所有需要一起编译的源文件。 workspaceFolder/main.cpp",...:核心修改。这里我们明确列出了所有需要一起编译的源文件。{workspaceFolder} 是 VS Code 的一个变量,代表你当前打开的项目根文件夹。
-o”KaTeX parse error: Expected '}', got 'EOF' at end of input: …ns": { "cwd": "{workspaceFolder}" } 作用:cwd (Current Working Directory) 指定了执行 command 时的工作目录。将其设置为项目根目录是最佳实践,可以确保所有相对路径(如源文件名)都能被正确解析。

“group”: { “isDefault”: true } 作用:将此任务设置为默认的“构建”任务。这样,当你按下 Ctrl+Shift+B(默认的构建快捷键)时,VS Code 会自动运行这个任务。

  • 修改文件中的command的值为,你电脑中g++程序的路径,请参考c_cpp_properties.json文件中的记录
  • 填入你写代码文件夹的路径
  • 填入mingw安装的路径,如上所示

注意,所有的路径符号均为:\\

工作流程如何串联

当你按下 F5(开始调试)时,VS Code 内部的完整流程如下:

  1. launch.json 响应 F5 事件,找到名为 “g++.exe build and debug active file” 的配置。
  2. 它检查到 “preLaunchTask”: “task g++” 字段。
  3. 它暂停启动,转而去 tasks.json 中寻找 label 为 “task g++” 的任务。
  4. 找到后,执行该任务:调用 g++,将 XXX.cpp, … 编译链接成一个XXX.exe 文件,并存放在当前文件夹中。
  5. 构建任务成功结束后,launch.json 的流程继续。
  6. 它启动 “program” 字段指定的XXX.exe 程序,并根据配置(如 externalConsole: true)为其提供运行环境。
  7. GDB 调试器附加到新启动的程序上,调试会话正式开始。

测试环境是否配置成功

在代码文件夹内创建一个新的代码,如:hello_world.cpp

#include"iostream"usingnamespace std;intmain(){ cout <<"Hello World From Visual Studio Code."<< endl;system("pause");return0;}

请注意,在第8行额外添加了system("pause");代码,功能是确保程序编译并执行后不会立刻退出,否则运行结果会一闪而过。

按键盘:F5开始执行代码。

img

如上,成功。

如果黑窗口闪退,请确认是否在return 0;代码前添加:system("pause");这一行代码。

参考:

1.Visual Studio Code 配置
2.VS Code C++ 项目构建与调试配置详解 (tasks.json & launch.json)

Read more

Python从0到100完整学习指南(必看导航)

Python 从 0 到 100 完整学习路线(2025–2026 实用版) 这是一条目前在中文社区被验证最多次、性价比最高、就业/副业/考研/转行都适用的 Python 学习路径。 分为 8 个大阶段,每个阶段给出: * 核心目标 * 推荐学习时长(每天 2–4 小时估算) * 最值得学的资源(2025–2026 仍活跃且评价最高的) * 必须掌握的技能清单 * 阶段性小目标 / 实战项目建议 阶段划分总览表 阶段名称目标人群建议时长累计总时长核心关键词0准备期完全零基础3–7 天1 周环境、IDE、学习心态1Python 基础语法零基础 → 能写小工具3–6 周1–2 个月变量、循环、函数、类2Pythonic

By Ne0inhk
Python 小工具实战:图片水印批量添加工具

Python 小工具实战:图片水印批量添加工具

Python 小工具实战:图片水印批量添加工具 Python 小工具实战:图片水印批量添加工具,本文详细介绍了使用 Python开发 给图片加水印的工具,该工具基于 Pillow 和 tkinter 库构建,可解决单图处理耗时、专业软件操作复杂的问题。工具支持单图与批量处理,用户能自定义水印文字、字体大小、透明度及颜色,还可选择 9 个常用水印位置或设置行列重复分布。新增的全屏水印模式可通过调整旋转角度与间距,生成铺满图片的版权保护水印,且界面采用卡片式布局,搭配浅灰背景与蓝色按钮,简洁美观,底部状态栏实时显示操作进度。文中提供完整可运行代码,并给出参数校验、字体兼容、常见报错解决等实用内容,新手按步骤即可上手,或者直接运行使用。 前言     Python作为一门简洁、易读、功能强大的编程语言,其基础语法是入门学习的核心。掌握好基础语法,能为后续的编程实践打下坚实的基础。本文将全面讲解Python3的基础语法知识,适合编程初学者系统学习。Python以其简洁优雅的语法和强大的通用性,成为当今最受欢迎的编程语言。本专栏旨在系统性地带你从零基础入门到精通Python核心。无论你是

By Ne0inhk
Python中一切皆对象:深入理解Python的对象模型

Python中一切皆对象:深入理解Python的对象模型

Python中一切皆对象:深入理解Python的对象模型 * 什么是"一切皆对象"? * Python对象的类型层次 * 1. 内置类型对象 * 2. 函数对象 * 3. 类对象和实例对象 * 4. 模块对象 * 对象行为的统一性 * 特殊方法:对象行为的背后 * 对象模型的实际应用 * 性能考虑 * 总结 Python以其"一切皆对象"的设计哲学而闻名,这种设计为语言带来了极大的灵活性和一致性。本文将深入探讨Python的对象模型,解释为什么说"Python中一切皆对象",并通过实例展示这一特性如何影响我们的编程方式。 什么是"一切皆对象"? 在Python中,从简单的数字、字符串到复杂的函数、类甚至模块,所有这些都是对象。这意味着它们都有: 1. 身份(identity):对象在内存中的唯一地址,可通过id()函数获取 2.

By Ne0inhk
Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践

Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践

🌟 Python中的"=="与"is":深入解析与Vibe Coding时代的优化实践 * 1. 🧐 `==`与`is`的本质区别 * 2. 🕵️‍♂️ `is`判断对象身份 - 数组与常量池案例 * 案例1:列表对象的身份 * 案例2:小整数常量池 * 案例3:字符串驻留 * 3. 🔍 `==`与`__eq__`魔法函数 * 4. 🔎 类型判断的正确姿势:使用`is` * 5. 🚀 Vibe Coding时代的提示词优化 * 场景1:解释概念 * 场景2:代码生成 * 场景3:调试帮助 * 📊 对比总结表 * 💡 实际应用建议 * 🌈 结语 在Python的奇妙世界中,==和is这两个看似简单的操作符常常让初学者感到困惑。它们如同双胞胎,外表相似却性格迥异。本文将带你深入探索它们的区别,并通过生动的案例和图表展示它们的应用场景,

By Ne0inhk