VSCode配置msvc编译调试环境

news2024/11/18 12:40:28

1.VS Code简介

VS Code 使用 Electron 框架构建用户界面,该框架使用 Chromium 和 Node.js 构建桌面应用程序。这使得 VS Code 能够在 Windows、Linux 和 macOS 上运行,并且可以使用 Web 技术 (HTML、CSS 和 JavaScript) 构建用户界面。 VS Code 使用 Monaco 引擎来提供文本编辑功能。

VS Code提供各种插件(目前的插件数量已经非常多包含各个方便,可以供开发者使用),针对不同的语言提供插件支持,你可以使用VSCode配置各种语言的开发环境。

我自己目前已经使用VS多年,对VS Code 有着极大地兴趣,准备配置一下C++语言各个版本的编译调试环境(MSVC,g++)

2.准备工作

2.1.安装msvc编译器组件

 1.可以直接安装VS2022或者其它版本(我这里是已经装有VS2022)

 2.下载Visual Studio Installer VS下载网址:Visual Studio 2022 Community

安装时,选择“单个组件”选项卡,我们需要以下列表里的组件,请确保他们已被选中或已安装:

注:这两个就够了;选择其他相近或较早版本的组件也可,一定要是MSVC生成工具和Windows SDK。

选择安装位置,安装好后关闭Visual Studio。接下来配置MSVC和windows kits的环境变量,需要添加以下环境变量或路径:

 

2.2 安装VS Code和c++相关的插件

VSCode下载地址:Visual Studio Code。打开,搜索并安装扩展C/C++,如下图所示:

3. 配置VS Code

VSCode在每个工作区(项目文件夹)下,都配有一个.vscode隐藏文件夹,里面存放一些脚本文件,指示VSCode对工作区的代码进行操作的模板或模式。 

3.1 配置编译器等信息(c_cpp_properties.json)

以E:\vsCode\CPlusProject\ProjectOne为例,建立它,并在VSCode里打开这个文件夹,使它成为我们目前的主工作区。输入快捷键Ctrl+Shift+P,呼出命令行,输入C/C++,搜索并寻找一个全称为C/C++: Edit Configurations (UI)的命令,点它(如果你搜索不到,或许是遗漏了命令前导符>)。这时就会自动生成一个.vscode文件夹,里面有一个文件叫c_cpp_properties.json,我们的编译器配置就靠它了。

我自己的c_cpp_properties.json文件如下:

{
  "configurations": [
    {
      "name": "windows-msvc-x64",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
      ],
      "windowsSdkVersion": "10.0.22000.0",
      "compilerPath": "E:/vs2022/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-msvc-x64"
    }
  ],
  "version": 4
}

3.2 配置构建(生成)任务(tasks.json)

1.键入Ctrl+Shift+P,呼出命令行,输入build,搜索并寻找一个全称为Tasks: Configure Default Build Task的命令,点它。

我自己的tasks.json如下:

{
	"version": "2.0.0",
    "tasks": [
        {
            "label": "C/C++ Executable: build current active file",
            "type": "cppbuild",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/nologo",
                "/DUNICODE",
                "/D_UNICODE",
                "/DEBUG",
                "/Fe:",  "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options":
            {
               "cwd": "${fileDirname}"
            },
            "problemMatcher": "$msCompile",
            "group": "build",
            "detail": "Build only the current active file."
        }
    ]
}

注:如果要调试,则需要在"args" 参数中输入"/DEBUG" 等参数,否则调试时会出现问题 

2.配置完之后,可以尝试编译一下自己添加的cpp,会输出编译好的文件到指定目录

Ctrl+Shift+P呼出命令行,输入run task,它会推荐你几个匹配度较高的命令,请选中全称为Tasks: Run Task的指令:

如下图所示:

 

 

 

3.3 配置调试器(launch.json) 

配置launch.json文件

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\helow.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "console": "externalTerminal"
        }
    ]
}

开始调试:

 

 注:从编译到调试,每一步的配置文件都是关键,这里只是简单描述,具体细节还需要自己摸索实践

4.参考文章

在 VSCode 中配置 MSVC 环境_vscode配置msvc-CSDN博客

【精选】windows环境下VSCode配置C++教程(使用msvc编译器)_弦乐四重奏的博客-CSDN博客
VSCode配置C/C++环境 - 知乎
 

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

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

相关文章

OpenCV入门——图像视频的加载与展示一些API

文章目录 OpenCV创建显示窗口OpenCV加载显示图片OpenCV保存文件利用OpenCV从摄像头采集视频从多媒体文件中读取视频帧将视频数据录制成多媒体文件OpenCV控制鼠标关于[np.uint8](https://stackoverflow.com/questions/68387192/what-is-np-uint8) OpenCV中的TrackBar控件TrackBa…

antd中的form表单数据不更新

antd中的form表单 initialValue导致数据不更新问题 理解 : initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变,却又有一些不同,因为 initialValue又会因其他改动而改变。 解决: form.resetFields();

内网Jenkins 部署.net(dotnet)项目

一、前置条件 内网部署Jenkins,并安装好所需插件 此篇内容需承接内网搭建Jenkins自动化远程部署项目到Windows服务器_jenkins内网安装-CSDN博客 ,才更好操作与理解 二、在Jenkins中创建项目 三、配置项目 General Source Code Management Build Envi…

2023最新版本 从零基础入门C++与QT(学习笔记) -4- C/C++混合编程

🎏在C兼容C只需要调用C头文件 🎄格式 🎈 -1- extern(关键字) “C”{ }(花括号) 🎈 -2- 花括号里面填写要包含的头文件 🎄代码段格式 extern "C" {#include “stdio.h”#include “string.h” }&#x…

2023深圳高交会,11月15-19日在深圳会展中心盛大开幕,展出五天时间

跨越山海,共赴鹏城。 11月15日至19日,第二十五届中国国际高新技术成果交易会在深圳会展中心(福田展区)和深圳国际会展中心(宝安展区)两馆同时举行。一场不可错过的全球性高科技盛会如期而至。 科技赋能发…

2023年数据泄露事件频发,企业应该如何做好数据安全保护?

在当今数字化时代,每时每刻都会产生大量的数据,这些数据包含大量的敏感信息,网络犯罪者可以利用这些数据获取巨大的利益,由此他们会通过技术攻击、网络钓鱼等各种非法手段来获取,而这也导致数据泄露事件频频发生。 以下…

冰点还原精灵Deep Freeze for mac版

Deep Freeze是一种系统恢复软件,它可以保护计算机系统免受恶意软件和不必要的更改。它的基本功能是在计算机重启后恢复到原始状态,即使用户进行了任何更改也不例外。 Deep Freeze主要用于公共场所的计算机,如图书馆、学校实验室和互联网咖啡馆…

JavaScript基础入门05

目录 1.操作结点 1.1新增节点 1.1.1. 创建元素节点 1.1.2. 插入节点到 dom 树中 1.2删除节点 2.代码案例: 猜数字 2.1预期效果 2.2代码实现 3.代码案例: 表白墙 3.1预期效果 3.2创建页面布局 3.3调整样式 3.4实现提交 3.5实现点击按钮的动画效果 4.代码案例: 待办…

小波神经网络的时间序列预测——短时交通流量预测

大家好,我是带我去滑雪! 小波神经网络(Wavelet Neural Network,WNN)结合了小波变换和神经网络的特性,是一种在信号处理和模式识别领域应用广泛的神经网络模型。它的设计灵感来自于小波变换的多尺度分析特性…

Hive 查询优化

Hive 查询优化 -- 本地 set mapreduce.framework.namelocal; set hive.exec.mode.local.autotrue; set mapperd.job.trackerlocal; -- yarn set mapreduce.framework.nameyarn; set hive.exec.mode.local.autofalse; set mapperd.job.trackeryarn-- 向量模式 set hive.vectori…

算法萌新闯力扣:搜索插入位置

力扣热题:搜索插入位置 开篇 对于想要学会二分查找的算法萌新来说,这道题是非常友好的学习题目,完完全全按照二分查找模版就可以完成。大伙儿还不赶紧练起来! 题目链接:35.搜索插入位置 题目描述 代码思路 这道题时完完全全的…

使用VC++设计程序:对于一幅256级灰度图像,求其一元熵值、二维熵值

数字图像处理–实验二B图像的一维熵与二维熵算法 本文主要是对图像进行一维熵以及二维熵的计算,下面附有实现的代码 文章目录 数字图像处理--实验二B图像的一维熵与二维熵算法一、 实验内容二、 一维熵1. 一维熵的定义2. 一维熵的C代码实现 三、 二维熵1. 二维熵的定…

JSP注释方式演示 讲解显式与隐式注释

好 今天我们来了解一下jsp中的注释哦 它支持两种注释: 显式注释/隐式注释 显式注释 是 允许被客户端看到的 就是 打开浏览器 用查看源码方式能看到的注释 与之对应 隐式注释 就是 在客户端 是无法看到这些注释信息的 显式注释 的语法就是html的注释语法 <!-- 显式注释 --…

03-学成在线内容管理模块之课程查询

课程查询 需求分析 教学机构人员点击课程管理按钮进入课程查询界面,在课程列表页面输入查询条件查询课程的信息 当不输入查询条件时默认会全部课程信息,输入查询条件会查询符合条件的课程信息,约束条件是本教学机构查询本机构的课程信息 数据模型(model工程) 课程查询功能…

ACM练习——第三天

今天继续练习C和ACM模式 在写题之前先了解一些新的知识 1.#include <algorithm> #include <algorithm> 是 C 标准库中的头文件之一&#xff0c;其中包含了一系列用于处理各种容器&#xff08;如数组、向量、列表等&#xff09;和其他数据结构的算法。这个头文件提供…

spring cloud alibaba之nacos

spring cloud nacos 安装和启动nacos # 解压nacos安装包 # tar -zvxf nacos-server-1.4.1.tar.gz# nacos默认是以集群的模式启动&#xff0c;此处先用单机模式 # cd /usr/local/mysoft/nacos/bin # sh startup.sh -m standalone# nacos 日志 # tail -f /usr/local/mysoft/na…

C++ [多态]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT 多态 前言正文多态的概念多态的定义构成多态的条件关于final和override关于重载,重写和重定义 抽象类概念补充 多态的原理虚表指针和虚表关于虚函数的调用动态绑定和静态绑定 单继承与多继承中的…

Python 如何实现解释器(Interpreter)设计模式?什么是解释器设计模式?

什么是解释器&#xff08;Interpreter&#xff09;设计模式&#xff1f; 解释器&#xff08;Interpreter&#xff09;设计模式是一种行为型设计模式&#xff0c;它定义了一种语言文法的表示&#xff0c;并提供了一个解释器&#xff0c;用于解释语言中的句子。该模式使得可以定…

程序员黑话之故障专辑(中英文对照版)

去年出过一期「程序员黑话集」&#xff0c;一直想着更新一季&#xff0c;正好最近业内接连发生了几起影响比较大的故障&#xff0c;那我们就专门做一期「故障专辑」吧。 故障 故障有好几种叫法&#xff0c;比较正式的 故障 - Outage事故 - Incident 不怎么严重的&#xff0…

文生图超级大合集!几乎包含所有模型,提示词教程

除了DALLE 3、Midjourney、Stable Difusion&#xff0c;你还知道哪些好用小众的文生图模型吗&#xff1f; 你知道一张精美的AI图片&#xff0c;需要哪些精准的提示词、效果融合以及制作流程吗&#xff1f; 如果把几乎所有文生图模型集合在一个平台中&#xff0c;并且还能叠加…