简述一下步骤哈:

  1. 下载VsCode(这点大家都会哈)
  2. 下载MingG64(C/C++编译器【gcc】),配置环境变量
  3. 在VsCode配置一下C/C++运行时环境
  4. 测试运行

1、准备MingG64

VsCode 本身是没有C/C++编译的,这里我们自己去下载一个MingG64 就可以了。

下载地址页面:MingG64

在这个页面选择你想要的MingG64版本进行下载,能玩新的就玩新的哈,不然没劲哈。

我们选择的是这个x86_64-posix-seh,下载下来就是个7z的压缩包哈,无需安装的。

 

下载完,解压到自己想要放置的目录中去。

目录结构:

2、配置MingG64环境变量

这个蛮简单的哈。

先复制我们之前MingG64放置的路径位置,一直到bin路径哈。

如我的就是:D:\computeSoft\cpp\mingw64\bin

鼠标右键点击我的电脑–>点击 高级系统配置–>点击 环境变量点击新建将你的复制好的路径粘贴进去即可。

测试是否安装好

我们按下 win+r ,输入cmd,来命令行,输入gcc --version进行测试。弹出这样的就是配置成功了。

3、VsCode配置C/C++开发环境

3.1、安装C/C++扩展

创建一个空文件夹,确保这个文件夹所在的文件路径没有中文字符哈,不然会报错的。

然后我们用VsCode打开。

安装一下这个哈。

安装完成之后,直接在VsCode中按 ctrl+shift+p快捷键

出现以下界面: 直接搜索C/C++即可,我是因为已经搜过了。

搜到后点进去:这里附属一张中文翻译版本截图

3.2、修改生成的Json配置文件

用VsCode 打开这个空文件夹,新建一个test.cpp文件哈。

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello\n");system("pause"); // 保持窗口不被关闭哈 这个固定的方法我还没找到 只能先这么写了return 0;
}

打开launch.json文件,再次点击run--> add Configuration

之后我直接放图哈。点击运行–>以非调试模式运行。

点击后,弹出如下弹窗选项:                

附属上其他的人VsCode会默认生成一个.vscode文件夹:

平常在文章中看到的要编辑的json文件也就这两个了。

默认生成的文件如下:

c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

task.json

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe build active file",//C语言就改成gcc.exe,C++就改成g++.exe"command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Task generated by Debugger."}],"version": "2.0.0"
}

我们需要添加或修改的地方:

第一个,将launch.json文件中第16行的externalConsole属性修改为true,这样就能弹出窗口第二个:在task.json文件中的tasks属性下的args中增加两行属性:

"-fexec-charset=GBK", // 处理mingw中文编码问题

"-finput-charset=UTF-8",// 处理mingw中文编码问题 

 4、测试运行,直接按ctrl+F5也能运行

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello World!\n");printf("很高兴,能够遇到你! \n");system("pause");return 0;
}

扩展:g++和gcc的区别

g++和gcc的区别:

1、对于不同后缀的文件当作程序不同。c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;对于.cpp后缀的文件,gcc和g++都会当做c++程序。gcc可以判断出目标程序所使用编程语言的类别,会把xx.c文件当做C语言编译,把xx.cpp文件当做C++语言编译。而g++只把xx.c和xx.cpp一律当做C++语言来编译

2、编译阶段调用不同,g++会调用gcc。

3、连接阶段方式不同,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。

4、在编译C++文件时,g++会自动连接一些标准库或基础库,而gcc不会,当正在编译的C++代码文件依赖STL标准库时候,为了使用STL,gcc命令需要增加参数-lstdc++。因此虽然gcc和g++都可以编译C++ 语言,但是使用g++会更方便一些。

gcc/g++在执行编译工作的时候,总共需要4步:第一步预处理,生成.i的文件预处理器cpp。第二步将预处理后的文件转换成汇编语言,生成文件.s编译器egcs。第三步有汇编变为目标代码(机器代码)生成.o的文件汇编器as。第四步连接目标代码,生成可执行程序链接器ld。

扩展: VSCode的Json配置

tasks.json

tasks.json 文件定义了 VSCode 中的构建任务。你可以配置 VSCode 在构建(编译)你的项目时应执行的操作。例如,使用 g++ 编译器编译 C++ 代码。

点击左上角...:终端:配置任务

点击:C/C++:g++.exe 生成活动文件

在.vscode文件夹自动创建了tasks.json,下面包含了完整解释:

 {// 配置文件版本"version": "2.0.0","tasks": [{// 任务名称"label": "C/C++: 使用 g++ 生成可执行文件",// 任务类型"type": "cppbuild",// 编译器路径"command": "g++.exe",// 编译参数"args": ["-fdiagnostics-color=always", // 彩色输出"-g",                         // 含调试信息"${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],// 当前工作目录"options": {"cwd": "${fileDirname}"},// 错误匹配器"problemMatcher": ["$gcc"],// 构建任务组,设为默认"group": {"kind": "build","isDefault": true},// 附加信息"detail": "由调试器自动生成的 C++ 编译任务"}]
}

launch.json

launch.json 文件定义了调试配置。你可以配置 VSCode 如何启动和调试你的应用程序,包括设置调试器路径、启动参数等。

点击左上角...:运行:添加配置

点击:C/C++(GDB/LLDB)

点击添加配置:{}C/C++: (gdb) Windows 上的 Bash 启动

在.vscode文件夹自动创建了launch.json,下面包含了完整解释:
 

{"version": "0.2.0","configurations": [{"name": "C/C++: 使用 gdb 启动调试","type": "cppdbg","request": "launch",// 设置为当前 .cpp 文件对应的可执行文件"program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb",// 推荐设置为 MinGW 的 gdb 完整路径(自动也可以)"miDebuggerPath": "gdb.exe",// 启动调试器时运行的初始化命令"setupCommands": [{"description": "启用 gdb 整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "设置反汇编风格为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],// 关键项:调试前自动构建,确保是最新的可执行文件"preLaunchTask": "C/C++: 使用 g++ 生成可执行文件"}]
}

c_cpp_properties.json

c_cpp_properties.json是一个配置文件,用于指定C/C++项目的编译器和头文件路径等相关设置。

按Ctrl+Shift+P调出命令面板

输入C/C++: Edit Configurations (UI)并选择它

使用此编辑器编辑在基础c_cpp_properties.json文件中定义的 IntelliSense 设置。在此编辑器中所做的更改仅适用于所选的配置。要一次编辑多个配置,请转到 c_cpp_properties.json

在.vscode文件夹自动创建了c_cpp_properties.json,下面包含了完整解释: 

{// 配置数组// 包含所有代码配置的数组。"configurations": [{// 配置名称// 此配置的名称为“Win32”。"name": "Win32",// 包含路径// 编译时要包含的路径,可以使用通配符。"includePath": ["${workspaceFolder}/**"],// 预处理器定义// 编译时定义的预处理器宏。"defines": ["_DEBUG",    // 调试模式"UNICODE",   // 使用 Unicode 字符集"_UNICODE"   // 使用 Unicode 字符集],// 编译器路径// 指定编译器的路径。"compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",// C标准// 指定要使用的C语言标准。"cStandard": "c17",// C++标准// 指定要使用的C++语言标准。"cppStandard": "gnu++17",// IntelliSense 模式// 指定IntelliSense的模式。"intelliSenseMode": "windows-gcc-x64"}],// 配置文件版本// 此配置文件的版本。"version": 4
}

问题:如果碰到:

launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist这类报错的,按照如下修改

1、确认编译的是C还是C++

如果是C,就将task.json中的command中的改成gcc.exe

如果是C++,这里就改成g++.exe

launch.json如果非需要,可以不配置,否则不会重新编译,感觉launch.json这个文件会在task.json之前执行,但是program这个参数表示可执行的文件,还是必填,此时文件还未编译就找不到文件

参考:

1、VsCode 配置 C/C++ 开发环境,真的很简单-腾讯云开发者社区-腾讯云

2、【操作与配置】VSCode配置C/C++及远程开发_vscode c++远程调试-CSDN博客

3、保姆级教程:C++/C 编程运行环境配置,C++/C 运行环境搭建_c++环境配置-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87413.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87413.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87413.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用C#编写一个读取磁盘第一扇区的程序

1.运行结果 2.WinHex校验 3.程序 using System; using System.IO;class Program {static void Main(){try{// 以管理员权限运行此程序const string drivePath "\\.\G:";const int sectorSize 512; // 标准扇区大小// 打开逻辑驱动器&#xff08;需要管理员权限&a…

【PyTorch】PyTorch预训练模型缓存位置迁移,也可拓展应用于其他文件的迁移

目录 前言&#xff1a; 一、具体实现&#xff1a; 二、关键技术解析 路径动态拼接 安全目录创建 环境变量魔法 迁移条件检查 三、代码实现&#xff1a; 前言&#xff1a; 当模型文件下载到本地c盘的默认路径时&#xff0c;可用以下代码的形式进行文件位置的迁移。 一、…

Python 机器学习核心入门与实战进阶 Day 2 - KNN(K-近邻算法)分类实战与调参

✅ 今日目标 理解 KNN 的原理与“以邻为近”的思想掌握 K 值选择与模型效果的关系学会使用 sklearn 训练 KNN 模型实现 KNN 分类 模型评估 超参数调优 &#x1f4d8; 一、KNN 算法原理 KNN&#xff08;K-Nearest Neighbors&#xff09;核心思想&#xff1a; 给定一个待预测…

pppoe宽带连接-系列命令调用

以下是对PPPoE相关命令的详细解释及用法说明&#xff1a; 1. pppoe 功能&#xff1a;PPPoE基础工具集&#xff0c;通常作为其他命令的底层依赖。 用法&#xff1a;一般不直接使用&#xff0c;而是通过pppoe-*系列命令调用。 2. pppoe-connect 功能&#xff1a;建立PPPoE连接…

C# 合并两个byte数组的几种方法

1. 使用 Array.Copy 方法&#xff08;高效推荐&#xff09;byte[] array1 { 1, 2, 3 }; byte[] array2 { 4, 5, 6 };byte[] combined new byte[array1.Length array2.Length]; Array.Copy(array1, 0, combined, 0, array1.Length); Array.Copy(array2, 0, combined, array1…

Spring AI 源码

目录 Spring AI 介绍 Spring AI 组件介绍 Spring AI 结构化输出 Srping AI 多模态 Spring AI 本地Ollama Spring AI 源码 Spring AI Advisor机制 Spring AI Tool Calling Spring AI MCP Spring AI RAG Spring AI Agent Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是…

钉钉企业应用开发系列:前端实现自定义右上角菜单(dd.http + Vue3)

本文将围绕“如何在钉钉企业应用中自定义右上角菜单”这一主题进行讲解&#xff0c;并结合现代前端技术栈&#xff08;Vue3 Composition API&#xff09;展示完整实现过程&#xff0c;帮助你快速构建具备原生交互体验的企业应用。一、前置准备1. 注册钉钉开发者账号并创建应用…

STC8H驱动两相四线步进电机

两相步进电机, STC8H系列 用高级PWM实现SPWM细分驱动 /************* 功能说明 ************** 用B组高级PWM细分驱动2相4线小型步进电机, 支持1、2、4、8、16、32、64细分, 比如1.8度的电机4细分到0.45度. 本程序用于演示SPWM多细分直接驱动2相4线小型步进电机…

读书笔记:《DevOps实践指南》

《DevOps实践指南》 美 Gene Kim, Jez Humble, Patrick Debois, John Willis 著&#xff1b;刘征&#xff0c;王磊&#xff0c;马博文&#xff0c;曾朝京 译 个人理解&#xff1a; 向客户交付价值&#xff0c;快速、高效、高质量交付 信息全流程共享、全过程参与、关注软件…

创客匠人视角:创始人 IP 从流量狂欢到价值深耕的蜕变之路

在知识付费行业浪潮中&#xff0c;创客匠人深耕九年&#xff0c;见证了无数 “一夜爆红” 与 “迅速陨落” 的案例。从 “菏泽树哥” 的流量泡沫&#xff0c;到天水麻辣烫的短暂热度&#xff0c;这些现象折射出行业发展的阶段性特征&#xff0c;也促使创始人 IP 打造的底层逻辑…

ArchLinux:别样的btrfs log tree修复大赛(errno=-5 IO failure Failed to recover log tree)

archlinux 简明指南本指南包含 archlinux 安装、配置、维护等&#xff0c;帮助新手快速上手https://arch.icekylin.online/一个月黑风高的上午&#xff1a;美滋滋的打开电脑进grub选择arch启动 欸&#xff01;突然就卡在这里了&#xff0c;系统进了rootfs&#xff0c;并且长按电…

Laravel8中使用phpword生成word文档

最近在开发有关考试试卷相关的内容&#xff0c;需要生成试卷的word文档并下载。 这里用到了phpoffice/phpword插件&#xff0c;这里记录下一些开发过程中注意的点。 1.安装phpoffice/phpword composer require phpoffice/phpword2.准备一个word模板方便向其中写入需要生成的内容…

spring-ai-alibaba官方 Playground 示例

1、Spring AI Alibaba 官方社区开发了一个包含完整 “前端UI后端实现” 的智能体 Playground 示例&#xff0c;示例使用 Spring AI Alibaba 开发&#xff0c;可以体验聊天机器人、多轮对话、图片生成、多模态、工具调用、MCP集成、RAG知识库等所有框架核心能力。 2、界面 3、准…

k8s pod深度理解

一、理论 pod等同于逻辑主机&#xff0c;在它上面运行各种程序&#xff08;容器&#xff09; pod的pause容器作用&#xff0c;pod网络、存储 所有容器的父容器&#xff0c;负责回收僵尸容器&#xff0c;同时它为pod中的容器提供了统一的网络及统一的共享存储。 pod的endpoint…

Android Auto即将带来变革

在2025年谷歌I/O开发者大会上&#xff0c;Android Auto迎来重磅升级。除了集成Gemini智能助手外&#xff0c;本次更新还突破性地为车载信息娱乐系统新增了浏览器和视频应用支持。值得注意的是&#xff0c;Spotify应用也将获得一系列创新功能&#xff0c;进一步丰富用户的驾驶体…

Jenkins 与 GitLab CI/CD 的核心对比

Jenkins 与 GitLab CI/CD 的核心对比及中小企业选型建议如下&#xff1a; &#x1f504; ‌核心功能对比‌ ‌维度‌‌Jenkins‌‌GitLab CI/CD‌‌集成性‌需手动配置插件对接代码仓库&#xff08;如 GitLab&#xff09;原生深度集成 GitLab 仓库&#xff0c;实现代码-CI/CD …

每日问题总结

fairy GUI适配相关问题 为什么自己适配好了但是打包发布到unity没有UI显示呢&#xff1f; 原因可能是你发布的组件和图片不在同一个包下面&#xff0c;因为fairyGUI的分包限制问题&#xff0c;每一个包限制在2048M大小。不能超过这个大小&#xff0c;所以说&#xff0c;有可能…

embbding you should know

embedding&#xff1a;就是将词向量或者图向量 采用权重升维度&#xff0c;更好的去表达这个特征&#xff1b;nn.Embedding 是 PyTorch 中的 查表式嵌入层&#xff08;lookup‐table&#xff09;&#xff0c;用于将离散的整数索引&#xff08;如词 ID、实体 ID、离散特征类别等…

【JS-6.2-模板字符串】ES6 模板字符串:现代JavaScript的字符串处理利器

在ES6(ECMAScript 2015)引入的所有新特性中&#xff0c;模板字符串(Template Literals)可能是最直观、最容易被开发者接受并广泛使用的特性之一。它彻底改变了我们在JavaScript中处理字符串的方式&#xff0c;提供了更强大、更灵活的字符串操作能力。本文将深入探讨模板字符串的…

百度捂紧“钱袋子”

何俊杰依然是李彦宏手里最能用、也最信得过的人之一。 作者|景行 编辑|文昌龙 李彦宏的OKR又兑现了一条。年初他在组织建设的OKR里放话“组织负责人进一步年轻化&#xff0c;提倡赛马”&#xff0c;如今“赛马”跑来了百度新CFO。 7月1日&#xff0c;李彦宏发全员邮件&#…