VScode的c/c++环境搭建

news2025/4/28 5:57:32

文章目录

  • 前言
  • 1、下载VScode
  • 2、安装cpptools
  • 3、下载MinGW
  • 4、配置环境变量
  • 5、修改C/C++配置文件
    • 5.1、编辑 launch.json 配置文件
    • 5.2、编辑 tasks.json 文件
  • 6、运行
  • 7、其他


前言

用VS进行C/C++开发,环境配置遵循以下步骤:

1.指定头文件目录。“配置属性”→"VC++目录"→“包含目录”。
2.指定库目录。“配置属性”→“VC++目录”→“库目录”。
3.指定依赖库。“配置属性”→“链接器”→“输入”→“附加依赖项”。
4.如果使用动态链接,还需要在PATH环境变量中包含动态库路径。

1、下载VScode

下载链接: VScode
安装过程:一路下一步,安装很简单,安装路径看个人

2、安装cpptools

按下图安装:
在这里插入图片描述

3、下载MinGW

下载地址:MinGW

下载的文件:进入网站后不要点击 “Download Lasted Version”,往下滑,找到最新版的 “x86_64-posix-seh”。

安装MinGW:下载后是一个7z的压缩包,解压后移动到你想安装的位置即可。我的安装位置是:D:\mingw64\bin
在这里插入图片描述

4、配置环境变量

配置对象:MinGW,所以把你刚刚安装MinGW的路径拷贝一下

配置环境变量:在此以win10为例,到达第6步之后,前面打开的窗口都要按下确定,否则会失败
在这里插入图片描述

安装VS Code插件
在这里插入图片描述
在插件中搜索Chinese和C/C++这两个插件并安装。需要注意的是安装完C/C++插件后,点击该插件右端的小齿轮,点开后点击安装另一个版本,并选择1.8.4的版本进行安装。完成上述操作之后,关闭VS Code,并重新启动即可。
在这里插入图片描述

点击左下角的小齿轮,然后点击设置,将自动保存模式改为afterDelay。
在这里插入图片描述
这样可以帮助你及时保存文件,减少因为其它缘故导致代码丢失的几率。

验证一下环境变量是否配置成功。
按下 win + R,输入cmd,回车键之后输入gcc -v
在这里插入图片描述
在英文目录下新建一个文件夹,然后在VS Code中打开该文件夹,创建一个以.c结尾的文件如【hello world.c】。
在这里插入图片描述

输入如下代码之后,点击软件左上角处的【运行(R)】,点击【以非调试模式运行】

# include<stdio.h>
# include<stdlib.h>

int main()
{
    printf("helo world!\n");
    printf("你好世界!\n");
    system("pause");
    return 0;
}

在这里插入图片描述
① 配置外部控制台

运行上面的代码后会在搜索框上显示需要选择编译器,默认点选最上面的,需要点两次。然后会自动生成一个.vscode文件夹,里面有launch.json和tasks.json两个文件。打开launch.json文件夹,将【“externalConsole”:false,】改为【“externalConsole”:true,】。再次点击运行,会弹出一个外部控制台,但是中文字符是乱码的,因此需要第二步操作,解决中文乱码问题。

在这里插入图片描述

解决中文乱码问题
在这里插入图片描述
打开tasks.json文件,在【”{fileBasenameNoExtension}.exe“】后面加一个英文逗号后,换到下一行,复制以下代码后CTRL+S保存文件。再次运行【hello world.c】就不会出现乱码了。
"-fexec-charset=GBK"
在这里插入图片描述

5、修改C/C++配置文件

(1)新建空文件夹hello

(2)打开VScode --> 打开文件夹 --> 选择刚刚创建的文件夹hello

(3)新建hello.cpp文件

#include<stdio.h>
#include<stdlib.h>

int main(){

    printf("hello world! I\'m VSCode\n");
    system("pause");
    return 0;

}

5.1、编辑 launch.json 配置文件

(1)运行----启动调试(F5)

在这里插入图片描述

会在工作目录(即hello文件夹)下的生成一个launch.json的启动配置文件,修改launch.json。下图是修改过的
在这里插入图片描述

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,   //改为true
            "preLaunchTask": "task g++",    //新增项
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe", //MinGW位置
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

5.2、编辑 tasks.json 文件

返回.cpp文件,按F5进行调试,会弹出找不到任务"task g++",选择 “配置任务”,会自动生成 tasks.json 文件。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "task g++",
			"command": "D:\\mingw64\\bin\\g++.exe",
			"args": [
				"-g",	//g++ -g
				"${file}",	//g++ -g main.cpp
				"-o",	//g++ -g main.cpp -o
				"${fileDirname}\\${fileBasenameNoExtension}.exe"	//g++ -g main.cpp -o main.exe
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"presentation": {
				"panel": "shared"
			}
			
	
		}
	]
}

6、运行

可以在终端直接输入程序运行

在这里插入图片描述

或者运行----启动调试(F5)

在这里插入图片描述

现在检查C++编译环境
我们重新新建一个英文目录下的文件夹,命名为CPP。然后用VS Code打开该文件夹,新建一个文件命名为【helloworld.cpp】复制以下代码后,点击运行。



# include<iostream>
using namespace std;

int main()
{
    cout<<"hello world, 你好世界!"<< endl;

    system("pause");

    return 0;
}

如果遇到没有打开外部控制台或者中文乱码的情况,重复第5步即可。如果点击运行后提示错误,打开.vscode文件中的tasks.json文件,然后将command行中的gcc改为g++即可解决问题。
在这里插入图片描述
在这里插入图片描述

7、其他

一劳永逸:因为VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。不用每个新cpp文件就要一套配置。这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【质优价廉】GAP9 AI算力处理器赋能智能可听耳机,超低功耗畅享未来音频体验!

当今世界&#xff0c;智能可听设备已经成为了流行趋势。随后耳机市场的不断成长起来&#xff0c;消费者又对AI-ANC&#xff0c;AI-ENC&#xff08;环境噪音消除&#xff09;降噪的需求逐年增加&#xff0c;但是&#xff0c;用户对于产品体验的需求也从简单的需求&#xff0c;升…

Spring源码学习:SpringMVC(3)mvcannotation-driven标签解析【RequestMappingHandlerMapping生成】

目录 前言mvc:annotation-driven标签概述mvc:annotation-driven标签解析【RequestMappingHandlerMapping生成】AnnotationDrivenBeanDefinitionParser#parse &#xff08;解析入口&#xff09;RequestMappingHandlerMapping的实例化类图afterPropertiesSetAbstractHandlerMetho…

Spring6梳理11——依赖注入之注入List集合类型属性

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 11 依赖注入之注入List集合类型属性 11.1 创建实体类Emp以及Dept Dept类中添加了遍历Emp…

最大似然估计,存在即合理

一、感性认识 认识的第一步来自感性的认识&#xff0c;先来感性的了解一下最大似然估计。现在&#xff0c;假设有两个学院&#xff0c;物理和外语学院。两个学院都各有特点&#xff0c;物理学院的男生占比大&#xff0c;外语学院女生占比大。如果在一次实验从两个学院中随机的…

记录linux环境下搭建本地MQTT服务器实现mqtt的ssl加密通讯

1、ubuntu安装mosquitto sudo apt-get update//安装服务端 sudo apt-get install mosquitto//安装客户端 sudo apt-get install mosquitto-clients 2、安装openssl 3、mqtts/tls加密传输 mosquitto原生支持了TLS加密&#xff0c;TLS&#xff08;传输层安全&#xff09;是SSL&…

828华为云征文 | 华为云 X 实例服务器存储性能测试与优化策略

目录 引言 1 华为云 X 实例服务器概述 2 存储性能测试方法与工具 2.1 测试方法 2.2 测试工具 3 FIO&#xff08;Flexible I/O Tester&#xff09;读写性能测试 3.1 顺序读写测试 3.2 随机读写测试 4 hdparm性能测试 4.1 实际读取速度测试 4.2 缓存读取速度测试 4.3…

乐鑫ESP-ZeroCode方案设备Matter协议开发新选择,设备无缝连接应用

随着科技的不断进步&#xff0c;智能家居正逐渐成为现代生活的一部分。物联网和智能家居行业应用取得了巨大的增长&#xff0c;一系列无线连接的智能设备涌入家庭&#xff0c;为家庭生活带来自动化和便利。 然而&#xff0c;随着设备数量的增加&#xff0c;用户开始面临一个挑…

LeetCode题练习与总结:删除链表中的节点--237

一、题目描述 有一个单链表的 head&#xff0c;我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。 链表的所有值都是 唯一的&#xff0c;并且保证给定的节点 node 不是链表中的最后一个节点。 删除给定的节点。注意&…

CentOS下安装Kibana(保姆级教程)

前言 Kibana是一个开源的数据分析和可视化平台&#xff0c;通常与Elasticsearch一起使用&#xff0c;用于展示和分析大规模数据集。以下是关于Kibana的一些主要特点和功能&#xff1a; 数据可视化&#xff1a; Kibana允许用户将数据转化为交互式、实时的图形和可视化展示&…

从零开始,Docker进阶之路(三):Docker镜像与命令

一、Docker核心名词 镜像文件、容器、仓库 镜像&#xff1a;简单理解为就是一个安装包&#xff0c;里面包含容器所需要运行的基础文件和配置信息&#xff0c;比如&#xff1a;redis镜像、mysql镜像等。 镜像的来源方式&#xff1a; 1.自己做镜像&#xff0c;比如自己开发微服…

Vue3: readonly与shallowreadonl

目录 一.readonly 1.性质 2.作用 二.shallowReadonly 1.性质 2.作用 三.readonly 四.shallowReadonly 五.运行代码 Vue3中的readonly和shallowReadonly是两个用于创建只读响应式对象的函数。 一.readonly 1.性质 readonly函数会将一个对象或数组包装成一个完全只读…

22 基于51单片机的智能家居系统(DHT11、继电器、气体浓度监测)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;DHT11温湿度检测&#xff0c;CO&#xff0c;PM2.5检测&#xff0c;通过LCD1602显示&#xff0c;超过阈值报警&#xff0c; 继电器驱动风扇转动。通过按键切换选择设置各项…

【linux】gcc makefile

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.gcc如何完成02.gcc选项03.函数库与动静态链接静态链接动态链接库文件特点和用途动态链接版本和兼容性 04.makefile自动推导 01.gcc如何完成 预处理(进行宏替换) 预处理功能主要…

SAM核心代码注释总结

最近看sam2&#xff0c;顺便注释了下代码&#xff0c;方便回顾和分享。 PS: tensor的维度都基于默认参数配置。 SAM _build_sam sam模块包含三个部分&#xff0c;ImageEncoderViT、PromptEncoder和MaskDecoder&#xff1a; def _build_sam(encoder_embed_dim,encoder_depth…

【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)

本文项目编号 T 049 &#xff0c;文末自助获取源码 \color{red}{T049&#xff0c;文末自助获取源码} T049&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

第Y1周:调用官方权重进行检测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、下载源码 从本周开始YOLO的学习啦。首先是先体验一下。教案选择的是YOLOv5s GITHUB的开源地址如下 github 开源地址 打开网页之后下载zip包解压到自己想…

Windows系统IP地址设置

目录 Windows系统IP地址设置一、背景二、设置步骤1、打开网络连接设置1) 在搜索栏输入“控制面板”&#xff0c;打开控制面板2) 选择“网络和Internet”&#xff0c;进入“网络和共享中心”。3) 进入网络连接设置 2、修改IP地址1) 选中你要修改的网卡&#xff0c;右键点击选择“…

使用Jlink打印单片机的调试信息

1.在工程中添加6个文件 除去RTT_Debug.h外的其他几个文件在jlink安装目录 RTT_Debug.h的内容如下 #ifndef _RTT_H_ #define _RTT_H_#include "SEGGER_RTT.h"#define STR_DEBUG //#define USART_DEBUG#define DBGLOG #define DBGWARNING #define DBGERROR#if def…

深度学习笔记(7)文本标注与NER

深度学习笔记&#xff08;7&#xff09;文本标注与NER 文章目录 深度学习笔记&#xff08;7&#xff09;文本标注与NER一、文本标注1.1文本标注工具doccano1.2 标注处理&#xff0c;bio标注 二、训练模型1.引入库2. 定义数据集3.建模4&#xff0c;模型训练5.评估6.训练 三.测试…

均衡功能,保障安全丨基于极海 G32A1445 汽车通用 MCU 的 BMU 应用方案

BMS电池管理系统是每个电动汽车车企不断优化改进的应用产品&#xff0c;其组成中的BMU用于实现电流检测、绝缘检测、SOC估算、容量累积、报警功能、充放电管理、远程监控等功能。BMU组成包括微控制器系统、充放电管理单元、CAN通信网络单元&#xff08;采集所有从控单体电池信息…