为Microsoft C ++配置VS Code
为Microsoft C ++配置VS Code
将VS Code配置为在Windows上使用Microsoft C ++编译器和调试程序(即MSVC)
准备工作
安装VSCode,并且安装官方C++插件
安装VS 2017 / VS2019 或其他版本,并且安装了MSVC工具集
MSVC 和 Mingw-w64
Mingw-w64 比较简单,只需要将bin路径加入path环境变量列表即可正常工作
MSVC 是一套复杂的工具集,其环境变量的配置非常复杂,以至于VS的最近几个版本将配置写到了脚本中,并且明确建议用户不应使用全局环境变量设置,而是使用Developer Command Prompt,而且随着用户修改VS套件,适用的环境变量也会变化.对应到VS Code中,由于没有全局环境变量的支持,支持调用cl.exe是无法运行的,VS Code官方提供的建议是从Developer Command Prompt启动VS Code,这样启动的VSCode将会继承MSVC的环境变量,因而可以正常使用MSVC编译
方法一: (官方建议)从Developer Command Prompt for VS启动VS Code
参考官方文档为Microsoft C ++配置VS Code
VS Code版本更迭较快,目前已经支持智能生成配置文件,因此这里将官方文档的操作步骤稍微修改如下:
在开始菜单启动Developer Command Prompt
在上面的命令行界面启动VSCode,命令格式为: code 项目路径
Ctrl+Shift+P调出命令面板然后输入C++,选择C/C++:编辑配置(UI)
指定Compiler path,即cl.exe的路径,类似:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\Hostx64\x64\cl.exe
指定IntelliSense mode为msvc-x64
回到VS Code主界面,新建一个CPP文件,等待VSCode加载语言引擎,然后F5等待弹出命令面板, 依次选择 C++(WIndows), cl.exe build
系统自动创建配置文件launch.json和tasks.json并且开始编译调试CPP文件
主要配置完成
总结: 官方给出的方法就是从Developer Command Prompt启动VS Code使其继承MSVC环境变量.每次启动C++文件夹都需要如此操作
方法二: 将方法一的启动过程写个简单的脚本
在方法一的基础上,为每个c++文件夹写个简单的启动脚本,注意修改相应路径.VsDevCmd.bat即Developer Command Prompt对应的脚本路径
@echo off
call "F:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
code "F:\Source\C++\projects\__ENV-MSVC"
方法三: 修改tasks.json,直接启动VSCode
将Developer Command Prompt加入tasks.json,缺点是每次启动task都会执行VsDevCmd.bat,增加大约2s的时间成本
{
"tasks": [
{
"label": "cl.exe build active file",
"type": "shell",
"command": "call",
"args": [
"F:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\Tools\\VsDevCmd.bat",
{
"value": "& cl.exe",
"quoting": "escape"
},
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": "$msCompile",
"dependsOrder": "sequence",
"dependsOn": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
},
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}
方法四: 将编译任务写成bat脚本,tasks.json直接调用bat脚本
将编译任务写成脚本文件build.bat,假设此脚本放在根目录下
@echo off
rem chcp 65001
call "F:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
set compilerflags=/Zi /EHsc
set linkerflags=/OUT:main.exe
cl.exe %compilerflags% /Fe main.cpp /link %linkerflags%
然后在tasks.json中直接调用此脚本即可
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "build.bat",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
总结
从效率上看官方提供的方法最佳,其他方法可能更加方便使用
原文地址:https://www.cnblogs.com/alex-zen/p/11376705.html
- RxJava2 实战知识梳理(2) - 计算一段时间内数据的平均值
- 用了Docker,妈妈再也不担心我的软件安装了 - 基础篇
- 适配器模式(Adapter)
- 敞开的地狱之门:Kerberos协议的滥用
- CY7C68013A的一点总结
- RxJava2 实战(1) - 后台执行耗时操作,实时通知 UI 更新
- AutoIt木马又一发:暗藏神秘照片
- css3动画从入门到精通
- ReactJs和React Native的那些事
- Linux学习-文件排序和FASTA文件操作
- Bash漏洞再次演进:缓冲区溢出导致远程任意命令执行
- Pandas,让Python像R一样处理数据,但快
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示
- 最小生成树-Prim算法和Kruskal算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Stata | 自动生成中南财大2019拟录取硕士研究生分析报告
- Stata | 聊聊数据排序的几种方式
- 在生产中应用广泛的排序算法
- SQL | SQL 必知必会笔记 (一 )
- 如何在树莓派4B上安装EMQ X Broker
- SQL | SQL 必知必会笔记 (二)
- 基于桶子法实现的两种排序算法
- Notes | 微观经济学课堂笔记(一)
- 将终结点图添加到你的ASP.NET Core应用程序中
- Stata | 爬取 CFPS 文献传送门并制作成 Markdown
- 委托的好处
- Elasticsearch安装和配置
- Notes | QUAIDS 模型
- Stata | 520,听说你也想快点找到...
- Stata | 批量替换变量值的小技巧