环境

OS::Microsoft Windows [Version 10.0.17134.285] x64

VSC:Version:1.27.2 (system setup)

VS:2017

心血来潮想使用VSC来写C++,官方文档和网上大多资料都是使用g++进行编译的。这里给出使用MSVC的方案。

参考了《用Visual Studio Code 来生成您的C++应用程序》的方法,当给出的版本太旧,在最新的win10上会有错误。

  1. 在插件界面安装C++开发组件。

  2. 新建个文件夹,命名为helloworld,并使用VSC打开。之后新建helloworld.cpp,输入标准的HelloWorld代码。

  3. Ctrl+Shift+P唤出控制台,执行C/Cpp: Edit Configurations...命令,初始化工程。

    之后会生成.vscode文件夹和c_cpp_properties.json文件。

  4. 查找vcvarsall.bat(需要安装Visual Studio)路径,之后新建一个build.bat(与helloworld.cpp同一路径),输入以下指令:

@echo off

call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

set compilerflags=/Od /Zi /EHsc

set linkerflags=/OUT:helloworld.exe

cl.exe %compilerflags% helloworld.cpp /link %linkerflags%

注意将vcvarsall.bat路径替换成你自己的,如果是32位系统,需要将x64替换位x86。

  1. Ctrl+,打开Settings界面,搜索terminal.integrated.shell.windows修改VSC默认的命令行为cmd(默认为powershell,使用powershell会出错)。

  2. Ctrl+Shift+P唤出控制台,Tasks:Configure Default Build Task,选择Other模板,新建tasks.json。

    修改为如下参数:

  3. Ctrl+Shift+B运行buil task,开始编译。

    顺利的话就能在EXPLORER窗口看到编译后的程序。

使用MSVC编译的话,调试配置会比较方便。

  1. Ctrl+Shift+D进入Debug界面,点击齿轮,选择C++(Windows)模板,生成launch.json。

  2. 修改launch.json中的:program属性。

    启动参数可以修改args参数。

  3. 下断点,开始调试。

更多调试的操作,可以参考《C/C++ for Visual Studio Code (Preview)

多文件编译可以参考《Walkthrough: Compiling a Native C++ Program on the Command Line》,编写相应的build.bat即可。

参考资料:
用Visual Studio Code 来生成您的C++应用程序
From <https://blogs.msdn.microsoft.com/c/2016/12/20/%E7%94%A8visual-studio-code-%E6%9D%A5%E7%94%9F%E6%88%90%E6%82%A8%E7%9A%84c%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F/>

Walkthrough: Compiling a Native C++ Program on the Command Line
From <https://msdn.microsoft.com/en-us/library/ms235639.aspx?f=255&MSPPError=-2147217396>

C/C++ for Visual Studio Code (Preview)
From <https://code.visualstudio.com/docs/languages/cpp>

visual studio code使用MSVC编译C++的更多相关文章

  1. 使用Visual Studio Code开发(编译、调试)C++程序

    总体安装步骤 安装VSC(Visual Studio Code). 安装C/C++编译器(如MinGW-w64),然后配置好环境变量.//完成这步即可在VSC的终端(命令行)下编译.运行.cpp程序了 ...

  2. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  3. ubuntu下使用visual studio code来编译和调试C++

    最近想在linux上编译c++代码,自己却一直习惯window上的IDE.以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太 ...

  4. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  5. 开发者说 | 使用Visual Studio Code编译、调试Apollo项目

    转载地址:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247484266&idx=1&sn=d6bcd4842 ...

  6. Visual Studio Code (vscode)编译C++

    Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代码片段. ...

  7. Visual Studio Code (VSCode) 配置 C/C++ 开发编译环境

    前言 工作多年,突然发现很多C++的基础都忘记了,加之C++不断更新换代后的各种新特性,于是想重拾C++的基础学习.虽然现在工作都是Linux平台,但考虑到个人方便,自己也仅仅想重温语法,家里家外都可 ...

  8. Visual Studio Code 配置 gcc

    作者:谭九鼎链接:https://www.zhihu.com/question/30315894/answer/154979413来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  9. Visual Studio Code 如何编写运行 C、C++ 程序?

    0. 前言 VS Code 是微软发布一款跨平台的源代码编辑器,其拥有强大的功能和丰富的扩展,使之能适合编写许多语言. 本文面向初学者(但不是纯小白),分享一点我配置C/C++的经验. 本文所有内容均 ...

随机推荐

  1. 【转载】ASP.NET之旅--深入浅出解读IIS架构

    在学习Asp.net时,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net. 他们耐心. 细致地告诉你如何一步步拖放控件. 设置控件属性.编写 CodeBehind代码,以实现某个特定的功能. ...

  2. 【Wechall.net挑战】Anderson Application Auditing

    Wechall.net是一个国外用于练习CTF和攻防的网站,国内资料writeup不多,只有个别几篇.作为小白,近日玩了几道有意思的题目,在此分享 题目地址:http://www.wechall.ne ...

  3. js中比較好的继承方式

    前面说到了原型和原型链,今天就来说说在面向对象中比較好的继承方式吧.先来看看两种基础的继承方式: 一.构造函数型 function People(name) { this.name=name; } P ...

  4. eolinker开源版接口管理

    eolinker开源版接口管理 想找一个API接口管理的软件,为了安全性和扩展性考虑,希望是开源的,而且可以在内网独立部署.网上翻找了资料,经过一份比对之后,最终采用eolinker.过去有使用过RA ...

  5. Top 10 Open Source Bug Tracking System系统

    Bugzilla http://www.bugzilla.org/ Mantis php http://www.mantisbt.org/ Trac Python also provides wiki ...

  6. 自我总结- CGAffineTransform

    在应用中我们经常需要做一些仿射变换 可以用于 平移.旋转.缩放变换路径: View有一个属性transform 可以指定一个 CGAffineTransform 即可完成仿射变换 1.平移变换 // ...

  7. PHP 获取网络接口文件流

    获取网络接口里面的文件流 php开发调用各种接口在所难免,有时须要传递非常多參数. 在传递參数过程中 '&' 有时会被 解析成 '&'导致请求失败 经过查找资料和比較,发现php提供了 ...

  8. python之Matplotlib 和Numpy

    1.matplotlib http://www.cnblogs.com/TensorSense/p/6802280.html https://wenku.baidu.com/view/e1c15c9d ...

  9. WebService 简单应用

    Web服务全称:XML Web Service,是一种可编程的应用程序逻辑组件,它可以在Internet或企业网的Web应用程序之间共享.Web服务被设计成能够通过Internet与其它应用程序之间直 ...

  10. jQuery学习笔记(7)--表格展开关闭

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...