visual studio code使用MSVC编译C++
环境
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上会有错误。
- 在插件界面安装C++开发组件。
- 新建个文件夹,命名为helloworld,并使用VSC打开。之后新建helloworld.cpp,输入标准的HelloWorld代码。
- Ctrl+Shift+P唤出控制台,执行C/Cpp: Edit Configurations...命令,初始化工程。
之后会生成.vscode文件夹和c_cpp_properties.json文件。
- 查找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。
- Ctrl+,打开Settings界面,搜索terminal.integrated.shell.windows修改VSC默认的命令行为cmd(默认为powershell,使用powershell会出错)。
- Ctrl+Shift+P唤出控制台,Tasks:Configure Default Build Task,选择Other模板,新建tasks.json。
修改为如下参数:
- Ctrl+Shift+B运行buil task,开始编译。
顺利的话就能在EXPLORER窗口看到编译后的程序。
使用MSVC编译的话,调试配置会比较方便。
- Ctrl+Shift+D进入Debug界面,点击齿轮,选择C++(Windows)模板,生成launch.json。
- 修改launch.json中的:program属性。
启动参数可以修改args参数。
- 下断点,开始调试。
更多调试的操作,可以参考《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>
最新文章
- Postman Postman测试接口之POST提交本地文件数据
- http://blinkfox.com/shi-yong-spring-aoplai-tong-ji-fang-fa-de-zhi-xing-shi-jian/
- 转:python webdriver API 之下拉框处理
- yii框架中保存第三方登录信息
- extern 相关
- core--线程状态
- Subsequence
- [CSAPP笔记][第六章存储器层次结构]
- 【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
- Linq GroupJoin
- Optimizing Java笔记:高级垃圾回收
- 窗体背景和png
- Golang入门教程(十一)beego 框架之RESTful Controller 路由
- Python全栈之路----常用模块----sys模块
- tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands 编译openssl出错
- git的安装以及生成ssh key
- oracle 日常设置
- Maven项目main和test文件夹说明
- 卸载数据盘、更改Inodes
- 谈谈我的js学习过程(一)