环境

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>

最新文章

  1. Postman Postman测试接口之POST提交本地文件数据
  2. http://blinkfox.com/shi-yong-spring-aoplai-tong-ji-fang-fa-de-zhi-xing-shi-jian/
  3. 转:python webdriver API 之下拉框处理
  4. yii框架中保存第三方登录信息
  5. extern 相关
  6. core--线程状态
  7. Subsequence
  8. [CSAPP笔记][第六章存储器层次结构]
  9. 【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
  10. Linq GroupJoin
  11. Optimizing Java笔记:高级垃圾回收
  12. 窗体背景和png
  13. Golang入门教程(十一)beego 框架之RESTful Controller 路由
  14. Python全栈之路----常用模块----sys模块
  15. tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands 编译openssl出错
  16. git的安装以及生成ssh key
  17. oracle 日常设置
  18. Maven项目main和test文件夹说明
  19. 卸载数据盘、更改Inodes
  20. 谈谈我的js学习过程(一)

热门文章

  1. 集群通信组件Tribes之怎样维护集群成员信息
  2. jquery中this和$(this)使用的地方
  3. struct timeval 和 struct timespec
  4. python 基础 2.6 break用法
  5. 实现RTSP网站微信直播方案EasyNVR(linux版)部署问题之:ERR_CONTENT_LENGTH_MISMATCH
  6. WebApi 传参详解(转)
  7. Centos7重新安装yum
  8. 九度OJ 1046:求最大值 (基础题)
  9. CMMI过程改进反例
  10. java读取TXT文件中的数据