超简单的在VS Code配置C/C++的方法(最新,轻量化,支持万能头文件)

超简单的在VS Code配置C/C++的方法(最新,轻量化,支持万能头文件)

PS:最近一直在为如何在vscode使用cpp感到头疼,网上的教程要么太老,要么不适合新手,故决定自己写一篇。

为什么用vscode? --轻量化,另外就是博主并不主使用cpp开发,cpp只是用来打算法的

教程实现什么?

1.可用“万能头文件 bits/stdc++.h”

2.结构清晰:所有 exe 文件统一输出到 bin 文件夹,cpp文件统一存放到src文件夹

一. 环境准备

1.vscode安装

vscode安装地址(https://code.visualstudio.com/)

在这里插入图片描述

下载完后点击安装:

在这里插入图片描述

最好不要装在C盘,更改安装路径的话,路径不要有中文和空格!其他选项默认就行。

需要中文的看这里:

在这里插入图片描述


安装完中文后重启vscode即可

2.MinGW安装

vscode本身只是一个文本编辑器,想使用某种语言需要安装对应的编译器,这里给出 MinGW-w64轻量化安装教程:

2.1从 WinLibs 获取 mingw-w64 + GCC 压缩包,解压到自己选择路径

为什么选这个网站下载:不需要安装其他软件,能用万能头文件

WinLibs 官网(https://winlibs.com/),进去后往下翻到如图界面:

在这里插入图片描述

没特殊要求下载最新版就行,下载完后解压并把它放到你喜欢的路径(这个路径要记住!路径补药有空格和中文):

在这里插入图片描述

复制mingw64的bin文件夹路径,后面大量使用

在这里插入图片描述

2.2编辑环境变量

win11直接点击win键,搜索环境变量并打开:

在这里插入图片描述

win10点击win+R,输入sysdm.cpl并点击确定:

sysdm.cpl 
在这里插入图片描述

两种方法都进入同一个界面,按下图操作:

在这里插入图片描述


双击系统变量中的Path:

在这里插入图片描述

将你的bin路径添加进path,接着一直确定或应用即可

在这里插入图片描述

验证你的路径没问题:

win+R输入cmd进入终端,输入g++ --version和gcc --version

g++ --version gcc --version 
在这里插入图片描述

3.安装扩展

进入vscode安装cpp扩展,安装后重启vscode

在这里插入图片描述

二. 配置CPP

1.在你放代码的地方创建一个放cpp的文件夹

推荐在存放cpp代码的文件夹上级在创建一个文件夹,方便你以后管理

1.1先创建一个code文件夹存放所有类型代码(可选)

在这里插入图片描述

1.2接着在code文件夹内创建存放cpp的文件夹

在这里插入图片描述

1.3然后在cpp文件夹内创建如图显示的文件夹和文件

在这里插入图片描述

注意:看不见扩展名的按下图操作

在这里插入图片描述

2. .vscode配置

2.1 先在.vscode 文件夹内创建如下json文件

下面的文件记得将所有的路径改成你自己的!!!

2.1.1 c_cpp_properties.json

这文件由 C/C++ 扩展读取,用来给 IntelliSense 提供“编译器路径、C/C++ 标准、头文件搜索路径”等信息,从而让跳转、补全、诊断与灰色波浪线准确,它不负责真正编译,真正编译走 tasks/launch。

{// 版本号,扩展用"version":4,"configurations":[{// 方案名,随便取"name":"WinLibs-GCC",// 指向你的 g++.exe——扩展会据此探测系统头/宏,提升 IntelliSense 准确性"compilerPath":"F:/exploit/mingw64/bin/g++.exe",//记得改成你自己的路径// C 语言标准(仅影响 IntelliSense)"cStandard":"c17",// C++ 语言标准(仅影响 IntelliSense)"cppStandard":"c++20",// 选择解析模式(Windows 下的 GCC)"intelliSenseMode":"windows-gcc-x64",// 代码提示与头文件跳转需要搜索的目录(工作区与 src)"includePath":["${workspaceFolder}/src/**","${workspaceFolder}/**"],// 需要全局定义的宏(这里留空)"defines":[]}]}

要改的路径如图中的红框:

在这里插入图片描述
2.1.2 tasks.json

VS Code 的“构建任务”

{"version":"2.0.0","tasks":[{// 任务名,launch.json 会用到"label":"Build Active File (WinLibs)","type":"shell",// 调用 g++"command":"g++","args":[// 语言标准"-std=c++20",//如果显示版本过低,就换成c++2a// 生成尽可能完整的调试符号,便于断点与变量查看"-g3","-ggdb",// 关闭优化,避免指令重排导致断点飘移"-O0",// 常用告警"-Wall","-Wextra","-Wshadow",// 可选自定义宏"-DLOCAL",// 要编译的源文件:当前活动编辑器里的文件"${file}",// 输出 exe 到统一 bin 目录,文件名与源同名"-o","F:/exploit/code/cpp_code/bin/${fileBasenameNoExtension}.exe"//改成你的],// 让 g++ 能在本进程 PATH 中被找到(无需全局改环境变量)"options":{"env":{"PATH":"${env:PATH};F:\\exploit\\mingw64\\bin"}//改成你的mingw64的bin路径},// 将其标记为“默认构建任务”,便于 Ctrl+Shift+B 直接触发"group":{"kind":"build","isDefault":true},// 使用内置 $gcc 匹配器解析编译错误高亮"problemMatcher":["$gcc"]}]}

要改的路径如图中的红框:
版本问题可以自行修改语言版本

在这里插入图片描述
2.1.3 launch.json

调试配置告诉 VS Code:要运行哪个可执行文件、使用哪种调试器(GDB 的 cppdbg)、调试前先跑哪个构建任务(preLaunchTask)

{"version":"0.2.0","configurations":[{// 运行/调试面板中显示的名字"name":"Debug Active File (gdb)",// C/C++ 扩展的 GDB 调试器类型"type":"cppdbg",// 启动一个新进程进行调试"request":"launch",// 要调试的程序(与当前活动 .cpp 同名的 exe,位于 bin)"program":"F:/exploit/code/cpp_code/bin/${fileBasenameNoExtension}.exe",//改成你的// 程序参数(没有就空)"args":[],// 调试时的工作目录"cwd":"F:/exploit/code/cpp_code",//改成你的// 补充 PATH,确保 gdb/运行时 DLL 可被找到"environment":[{"name":"PATH","value":"${env:PATH};F:\\exploit\\mingw64\\bin"}//改成你的mingw64的bin路径],// 在 VS Code 内部控制台显示标准输出;需交互输入时可改为 true 以启用外部控制台"externalConsole":false,// 选择 GDB 模式"MIMode":"gdb",// 指定 gdb.exe 路径"miDebuggerPath":"F:/exploit/mingw64/bin/gdb.exe",//改成你的gdb.exe路径// 启动调试前先自动执行上面的构建任务"preLaunchTask":"Build Active File (WinLibs)"}]}

要改的路径如图中的红框:

在这里插入图片描述

2.2接着测试是否能够运行cpp程序

右键src文件夹点击新建文件,创建.cpp文件并调试(以后也是在src文件夹下创建cpp文件):

在这里插入图片描述


在这里插入图片描述

运行(点小箭头也行):

在这里插入图片描述

运行选择我们写的(有多个选第一个):

在这里插入图片描述

运行无问题:

在这里插入图片描述

F5或者点击右上角调试:

在这里插入图片描述

断点设置无问题

在这里插入图片描述

如有问题,欢迎留言o( ̄▽ ̄)ブ

Read more

Flutter 三方库 given_when_then_unit_test 落地鸿蒙测试极度语义化全维适配:以纯行为特征描述需求倒逼测试沙盘收口、高效聚拢离散-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 given_when_then_unit_test 落地鸿蒙测试极度语义化全维适配:以纯行为特征描述需求倒逼测试沙盘收口、高效聚拢离散-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 given_when_then_unit_test 落地鸿蒙测试极度语义化全维适配:以纯行为特征描述需求倒逼测试沙盘收口、高效聚拢离散断言点编排出铁壁回归防线 前言 在 OpenHarmony 应用的大规模工程化开发中,代码质量是业务稳定运行的压舱石。然而,传统的单一 test() 函数往往会导致测试代码逻辑混乱、可读性差,长期维护困难。given_when_then_unit_test 库为 Flutter 开发者引入了行为驱动开发(BDD)的 DSL(领域特定语言)。本文将实战介绍如何在鸿蒙端利用该库构建“读起来像小说一样顺畅”的单元测试体系。 一、原理解析 / 概念介绍 1.1 基础原理/概念介绍 given_when_

By Ne0inhk
Flutter 组件 dev_analyzer 的适配 鸿蒙Harmony 实战 - 驾驭代码静态审计、实现鸿蒙工程质量自动巡检与研发效能预警方案

Flutter 组件 dev_analyzer 的适配 鸿蒙Harmony 实战 - 驾驭代码静态审计、实现鸿蒙工程质量自动巡检与研发效能预警方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 dev_analyzer 的适配 鸿蒙Harmony 实战 - 驾驭代码静态审计、实现鸿蒙工程质量自动巡检与研发效能预警方案 前言 在鸿蒙(OpenHarmony)大型工程的演进过程中,随着参与开发者的增多,代码风格的腐化、潜在的内存泄露风险以及非标 API 的私自调用,正逐渐成为拖慢项目交付进度的“隐形杀手”。 如果所有的代码审查(Code Review)都依赖于人工,不仅效率极低,更由于人的状态起伏而难以保证 100% 的覆盖率。 dev_analyzer 是一款专为工程诊断设计的静态分析增强器。它能深度扫描鸿蒙工程的目录树,解析依赖关系,并根据预设的质量模型产出结构化的诊断报告。在鸿蒙适配实战中,将 dev_analyzer 集成到每一次的 git commit 或 Atomgit 的流水线中,

By Ne0inhk
Flutter 三方库 flutter_cep2 的鸿蒙化适配指南 - 实现巴西邮政编码(CEP)的端侧校验与地理位置映射、支持地址自动补全与区域化数据解析实战

Flutter 三方库 flutter_cep2 的鸿蒙化适配指南 - 实现巴西邮政编码(CEP)的端侧校验与地理位置映射、支持地址自动补全与区域化数据解析实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flutter_cep2 的鸿蒙化适配指南 - 实现巴西邮政编码(CEP)的端侧校验与地理位置映射、支持地址自动补全与区域化数据解析实战 前言 在进行 Flutter for OpenHarmony 的全球化电商、物流或本地服务应用开发时,针对特定地区的地址规范校检是提升用户下单转化率的关键。对于巴西市场,CEP(Código de Endereçamento Postal)是唯一的邮政编码标准。flutter_cep2 是一个功能完备的 CEP 处理库。它不仅能验证格式,还能通过在线或离线方式获取对应的街道、社区及城市信息。本文将介绍如何在鸿蒙端构建极致的南美区域化地址感知能力。 一、原原理性解析 / 概念介绍 1.1 基础原理 flutter_cep2 封装了对巴西邮政官方或第三方聚合接口(如 ViaCEP,

By Ne0inhk
Flutter 三方库 annas_archive_api 的鸿蒙化适配指南 - 实现全球影印资源/文献的结构化检索、支持跨源元数据提取与端侧学术内容探测实战

Flutter 三方库 annas_archive_api 的鸿蒙化适配指南 - 实现全球影印资源/文献的结构化检索、支持跨源元数据提取与端侧学术内容探测实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 annas_archive_api 的鸿蒙化适配指南 - 实现全球影印资源/文献的结构化检索、支持跨源元数据提取与端侧学术内容探测实战 前言 在进行 Flutter for OpenHarmony 的教育、科研或电子阅读类应用开发时,如何低成本地接入海量的全球公开文献和图书元数据?annas_archive_api 是一款专为 Anna's Archive 设计的非官方 API 封装库。它能让你在鸿蒙端以对象化的方式搜索数千万份文献索引。本文将介绍如何在鸿蒙系统下构建极致的学术资源发现体验。 一、原直观解析 / 概念介绍 1.1 基础原理 该库通过对 Anna's Archive 网页接口的深度解析和 RESTful API

By Ne0inhk