VS-code 的MSVC编译环境搭建
(一)MSVC编译器介绍
MSVC简介:
与Linux系列操作系统不同,Windows原生环境不提供类似gcc,Clang的C/C++语言源程序编译运行工具链。运行在Windows上的IDE(集成开发环境),比如CodeBlocks之类,一般都使用MinGW配置模拟Linux下的开发环境来进行Windows下的开发(MinGW主页)。
但是在Windows下,与开发环境以及code编辑器协同更好的还是MSVC(Microsoft Visual C/C++)编译器。对于灵活程度更高的code编辑器,我们可以将Microsoft的Visual C/C++编译器下载并集成到code中。
MSVC编译器工具链主要由cl.exe与link.exe构成。其中:
- cl.exe用于控制在 Microsoft C/C++的编译器和链接器
- link.exe 将通用对象文件格式 (COFF) 对象文件和库链接起来,以创建可执行 (.exe) 文件或动态链接库 (DLL)
- 用户只需要调用cl.exe,即可完成编译-链接全过程。
- Microsoft官方介绍:cl.exe的命令行语法
如何获取MSVC:
一般来说,获取MSVC要通过Microsoft Visual Studio来实现。对于一般的应用场景来说,我们不需要下载完整的IDE而是只需要下载单个组件下的MSVC C++ 生成工具,以及Windows 10 SDK即可。(MSVC C++生成工具包含了全部编译链接工具链以及大部分函数库与头文件;Windows 10 SDK只是提供其它的一些必要库文件与头文件)
在下载与安装完成之后,会在PC上生成两个目录:
(一般是在“C:\Program Files (x86)”中生成这两个目录)
- 一个是Windows Kits目录,其中包含所有的Windows 10 SDK文件。
- 一个是Microsoft Visual Studio目录,其中包含MSVC的全部编译链接工具链以及大部分函数库与头文件。
(二)MSVC环境变量配置:
需要手动向Windosws的环境变量中添加几组新的环境变量,以支持cmd中cl.exe的运行。
Windows的环境变量不分辨大小写(也就是说path和Path对环境变量来说是一个变量)
- 名称为INCLUDE的几组环境变量:
- 名称为LIB的几组环境变量:
- 向Path中新添加的一个环境变量:
(三)task.json 的编写与“运行任务”
1. task.json的编写:
{
"version": "2.0.0",
"tasks": [
{
"label": "msvc build",
"type": "shell",
"command": "cl.exe",
"args":
[
"/EHsc",
"/Zi",
"/Fe:",
"helloworld.exe",
"hello.cpp"
]
}
]
}
2.msvc build任务的运行:
- 选择 “终端”->“运行任务”->“mscv build”
- 查看终端中是否报错,并查看是否生成了以下文件:
(四)launch.json 的编写与“运行-调试”
- launch,json的编写:
{
"version": "0.2.0",
"configurations":
[
{
"name": "(Windows) 启动",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/helloworld.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true
}
]
}
- 程序的 “运行-调试”:
- 设置断点
- ctrl+shift+d,或者点击调试按钮进入调试界面
参考
CSDN博客文章:Windows 10下vscode使用visual studio 2017的MSVC配置C/C++编译环境