VSCode+MSVC编写C/C++程序
目录
一、 安装软件
1.1 安装VSCode+中文插件
1.2 安装C/C++插件
1.3 安装MSVC工具集
1.3.1 下载
1.3.2 安装
1.3.3 检查MSVC编译器
二、 编写代码
三、 编译运行
3.1 配置tasks.json
3.2 编译运行
四、 调试
五、 配置C/C++
六、 直接打开VSCode运行程序
七、 小结
按照微软官方链接操作,官方链接:Configure Visual Studio Code for Microsoft C++
需要安装的软件:VSCode、VSCode的中文扩展、VSCode的C/C++插件、Visual Studio 2019的构建工具。
一、 安装软件
1.1 安装VSCode+中文插件
VSCode下载链接:Download Visual Studio Code - Mac, Linux, Windows
VSCode及中文插件安装链接参考:VSCode详细安装教程 - 知乎.
我下载的是System Installer 64bit。根据自己电脑系统选择对应文件。
1.2 安装C/C++插件
与安装VSCode的中文插件类似。打开VSCode,然后按Ctrl+Shift+X或者按下图操作,在搜索栏中填写【C/C++】,点击搜索到的第一个插件,点击,在右侧会出现该插件的详细信息,可以看到【安装】按钮,点击即可。 如果已经安装会显示【禁用】和【卸载】。
1.3 安装MSVC工具集
1.3.1 下载
如果已经安装了VS2017及以上版本的VS IDE,转到1.3.3节。
如果没有安装VS2017及以上版本的VS IDE,但是准备安装,安装完成后转到1.3.3节。
如果没有安装VS2017及以上版本的VS IDE,又不想安装完整的IDE,可以只安装VS2019的构建工具(Build Tools for Visual Studio 2019)。
下载链接:Downloads - Visual Studio Subscriptions Portal
可以看到有很多版本的Build Tools for Visual Studio 2019,选择其中一个版本下载。
该页面需要登录后进入,如果显示以下界面,登录即可。
1.3.2 安装
下载完成后双击打开(建议管理员模式),会出现如下提示,
点击【继续】等待直到出现如下界面,选中【C++生成工具】,右侧默认,注意设置【安装位置】,这个位置后面有用,点击安装,要等一段时间(看网速)。安装完成后会提示重启计算机,重启电脑。
1.3.3 检查MSVC编译器
在搜索栏输入【developer】,找到如下,建议以管理员模式打开【Developer Command Prompt for VS 2019】(适用于VS2019的开发人员命令提示符)。
打开之后输入【cl】检查MSVC是否安装成功,出现如下界面表示安装成功。
软件及插件的安装就到这里,打开的【Developer Command Prompt for VS 2019】不要关闭,后面还会用到。
二、 编写代码
通常情况下代码会放在一个指定的目录下,例如放在【E:\VSCode】,那么就要进入该文件夹,命令如下
代码最终存放路径为【E:\VSCode\projects\helloworld】,可以输入如下命令,命令【code .】打开VSCode。
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
可能会出现如下提示,点击【是.....】。
可以看到在左侧出现了当前文件夹的名字,点击右边的【新建文件】,输入文件名,双击打开这个文件,就可以编写代码了。
编写如下代码,并保存;也可以设置自动保存,点击【文件】,选择【自动保存】。
#include <iostream>
#include <vector>
#include <string>using namespace std;int main()
{vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};for (const string& word : msg){cout << word << " ";}cout << endl;
}
三、 编译运行
3.1 配置tasks.json
【tasks.json】文件告诉VSCode如何编译程序。
点击菜单栏的的【终端】--【配置默认生成任务】,弹出如下界面,选择【使用模板创建tasks.json】,选择【MSBuild 执行生成目标】,自动转到tasks.json编辑页面
编辑tasks.json
{"version": "2.0.0","tasks": [{"type": "shell","label": "cl.exe build active file","command": "cl.exe","args": ["/Zi","/EHsc","/Fe:","${fileDirname}\\${fileBasenameNoExtension}.exe","${file}"],"problemMatcher": ["$msCompile"],"group": {"kind": "build","isDefault": true}}]
}
变量和值的含义参考:Visual Studio Code Variables Reference
3.2 编译运行
重新转到【helloworld.cpp】编辑页面,按【Ctrl+Shift+B】或者在菜单栏点击【终端】--【运行生成任务】,在界面下方弹出信息,当如下信息显示后表示编译成功
点击右侧的【+】,新建终端,在新的终端输入【ls】查看当前目录下的文件,输入【./helloworld.exe】运行,输出程序结果
四、 调试
【Launch.json】中编辑与调试相关的信息。
Ⅰ 按【F5】或者点击菜单栏【运行】--【添加配置】,选择【C++(Windows)】,自动跳转到【Launch.json】编辑页面;
编辑内容如下:
{"version": "0.2.0","configurations": [{"name": "cl.exe build and debug active file","type": "cppvsdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"preLaunchTask": "cl.exe build active file"}]
}
需要注意的是
1. 【stopAtEntry】的值,true表示调试时自动在main()函数处暂停运行,false表示不暂停运行,除非你在某处设置了断点。
2. 可能会弹出如下界面,可以把【externalConsole】改为【Console】(不改也可以,但每次调试都会弹出如下提示)
Ⅱ 回到【helloworld.cpp】文件,按【F5】会出现如下界面,左上可以观察所有变量,左下可以观察指定变量,右上是用来调试的,可以看到现在运行到main()函数处。此时就可以调试了。
监视指定变量点击+号,输入变量名后回车即可。
五、 配置C/C++
按【Ctrl+Shift+P】,输入【C/C++】,有两种方式编辑:UI和编辑JSON,最终都是通过JSON文件实现的,点击【编辑配置(JSON)】
转到【c_cpp_properties.json】编辑页面,编辑代码如下
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG", "UNICODE", "_UNICODE"],"windowsSdkVersion": "10.0.18362.0","compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "msvc-x64"}],"version": 4
}
其中【compilerPath】路径就是前面【Build Tools for Visual Studio 2019】安装的位置下的cl.exe的路径。
以上步骤就可以实现编译运行一个C/C++程序。如果要在新的文件夹中编译运行,只需要把.vscode复制即可。需要注意的是以上操作过程中不要关闭【Developer Command Prompt for VS 2019】。接下来配置tasks.json实现不打开【Developer Command Prompt for VS 2019】也可以正常实现编译、运行、调试等操作。
六、 直接打开VSCode运行程序
打开tasks.json,按照如下编写,【VsDevCmd.bat】文件在安装【Build Tools for Visual Studio 2019】的路径下。
更改之后可以关闭【Developer Command Prompt for VS 2019】,编译运行程序都没有问题。
{"version": "2.0.0","windows": {"options": {"shell": {"executable": "cmd.exe","args": ["/C",// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed."\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat\"","&&"]}}},"tasks": [{"type": "shell","label": "cl.exe build active file","command": "cl.exe","args": ["/Zi","/EHsc","/Fe:","${fileDirname}\\${fileBasenameNoExtension}.exe","${file}"],"problemMatcher": ["$msCompile"],"group": {"kind": "build","isDefault": true}}]
}
官方链接中还提供了错误出现的原因及解决方法,我安装配置过程中没有出现过,所以就不赘述了,如果有问题的可以在官方说明中找到相关的内容。
七、 小结
1. VSCode使用MSVC编译工具时可以不安装完整的VS IDE,只安装构建工具即可;
2. tasks.json保存与编译环境相关的内容,Launch.json保存与调试相关的内容;
3.可以编辑tasks.json的内容实现不打开【Developer Command Prompt for VS 2019】编译运行程序。
VSCode+MSVC编写C/C++程序相关推荐
- VScode CMake 编写 Boost Asio 程序----记录4
项目场景: 调试 boost::thread 问题描述 boost::thread链接库出问题 参考: 1. Cmake 引用boost库时报错 Could NOT find Boost (missi ...
- 在VsCode里编写和运行不同语言的程序
文章目录 一.VsCode支持的编程语言 二.在VsCode里编写和运行不同语言的程序 (一)编写和运行C程序 1.编写源程序hello.c 2.运行程序,查看结果 (二)编写和运行Java程序 1. ...
- Windows系统中vscode+MSVC的C++配置
Windows系统中vscode+MSVC的C++配置 在Windows上编译C++程序不能直接使用gcc和g++命令,一般来说如果非要使用的话可以用wsl或者MinGW.过去的很长一段时间我也确实是 ...
- 在VSCode中编写Kotlin/Java
在VSCode中编写Kotlin/Java 前言 不希望每次运行一下代码就要去启动Android Studio这个庞然大物,正好vscode可以做一个轻量级的IDE,所以配置了vscode用来编写Ko ...
- .NET Core 3.1 编写混合 C++ 程序
前言 随着 .NET Core 3.1 的第二个预览版本发布,微软正式将 C++/CLI 移植到 .NET Core 上,从此可以使用 C++ 编写 .NET Core 的程序了. 由于目前仅有 MS ...
- VSCode + xUnit 编写 C# 单元测试
概述 什么是单元测试?为什么要写单元测试?如何写一个单元测试?实话实说,写单元测试是一件挺麻烦的事情,却又是你在软件开发的成长路上难以回避的一个问题.我个人在以前也并不喜欢单元测试,不过现在我的态度有 ...
- vscode使用lldb调试C++程序
vscode使用lldb调试C++程序 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 vscode使用lldb调试C++程 ...
- Linux环境下编写一个shell程序,此程序的功能:随机生成一个1-100的数(答案)让用户猜
题目:编写一个shell程序,此程序的功能:随机生成一个1-100的数(答案)让用户猜,如果用户猜的数大于答案,则提示大了,如果用户猜的数小于答案,则提示小了.当用户猜对时提示:猜对了. #! /bi ...
- 试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数
试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数 data segment data ends stack segment stack dw 30h dup ...
最新文章
- 神经网络 online problem class反馈
- 优酷开放SDK之setOnCompletionListener
- spring mvc学习(26):处理数据模型--从表单到controller传输数据
- 如何在Debian 9 / Debian 8上安装MariaDB 10.3
- EF中关于TransactionScope的使用
- idea自动生成unit test插件
- GD32F205在IAR上移植FreeRTOS
- catia锥齿轮画法_CATIA自动生成锥齿轮模型的宏程序应用方法
- 语音文件格式转换:.amr 转 .MP3, .wav格式
- 嵌入式linux机械臂,一款基于ARM嵌入式的机械臂的设计与实现
- IE6 Peekaboo(躲躲猫) Bug
- 基尔霍夫定律的验证与multisim仿真(附工程文件)
- excel多窗口显示设置
- java 文件头_常用文件的文件头(附JAVA测试类)
- 无所遁形的未来:人肉搜索还不够,AI带来了人脸搜索
- Swiper的API及自定义分页器等问题-淘宝触屏版首页制作
- 前端 CSS:锚伪类选择器:hover,:active,:visited;等用法总结
- 手机能连上Wifi,而Win10笔记本却连不上,解决方案(有图)
- 【Matlab/CV系列】基于K-means/分水岭分割的多光谱遥感图像分割的Matlab实现
- testWhileIdle和testOnBorrow