vs code是微软公司开发的跨平台编辑器,丰富的插件功能可以满足各种编程语言的编码,编译和调试。由于vs code本身只是一个编辑器,所以你需要准备编译工具链。本文针对的是windows系统,我这里使用mingw-w64作为编译工具链。

1.下载安装mingw-w64,并且把mingw-w64的bin目录加入环境变量,安装mingw-64的教程很多,不再复述。比如我添加的环境变量是:C:\Program Files\mingw-w64\x86_64-7.3.0\mingw64\bin

2.在微软的官方网站上下载安装vs code,目前最新版本是v.1.22.2 (2018/4/21)

3.打开vs code,在左边的扩展商店里面搜索c++,安装微软官方的插件,重启vs code或者点击旁边的"重新加载"生效

4.在磁盘上新建一个文件夹"HelloWorld",vs code打开这个文件夹,新建main.cpp

#include <iostream>
using namespace std; int main()
{
cout << "hello world" << endl;
for(int i = ;i < ;i++)
{
cout << i << endl;
} return ;
}

然后你会发现 #include <iostream> 这一行下面有一条波浪线,提示你没有找到iostream这个文件,所以不能包含,把鼠标移动到这一行会出现一个黄色的小灯泡,点击小灯泡Edit includepath setting

定位到win32的位置,编辑includePath,把你的头文件路径添加上就可以了。

如果你不清楚头文件路径,可以使用命令打印头文件的路径:

gcc -v -E -x c++ -

添加好了后是这样子的:

现在#include <iostream>就能够正常被包含了。

5.编译 :使用快捷键ctrl + shift +b编译main.cpp,由于是第一次编译,会提示你配置生成任务:

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g", //表示在生成的可执行文件中加入调试信息,如果你要调试程序,-g参数必不可少
"main.cpp"
],
"presentation": {
"reveal": "never"
},
"problemMatcher": [
"$gcc"
]
}
]
}

再次使用快捷键ctrl + shift +b就可以编译main.cpp了,编译完成可以看到生成了a.exe文件,这是编译生成的默认文件名称,想要自定义文件名可以使用 -o 参数。

6.调试:a.exe文件生成后,点击左边的调试按钮:

显示没有配置,点击可以添加配置,修改完成后记得保存:

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [ {
"name": "gdb c++",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files/mingw-w64/x86_64-7.3.0/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

再次点击调试按钮可以看到程序在我设置断点的地方停了下来,这样我们就可以调试自己的程序了。布局的左边会显示变量的值,堆栈信息和线程信息。

通过上面的配置已经能够满足基本的要求了,但是现在需要先编译再调试,分两个步骤比较麻烦,接下来就把编译调试一气呵成。

首先点击vs code的调试按钮,再点击设置按钮,修改调试的配置文件

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [ {
"name": "gdb c++",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files/mingw-w64/x86_64-7.3.0/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}

注意到我们只添加了以下内容,表示在调试之前启动任务 "build", 这个任务名字是上面编译阶段新增的任务名称。二者必须需要保持一致

, "preLaunchTask": "build"

保存修改后,我们只需要直接点击调试按钮就可以调试代码了,因为系统自动为我们在调试之前编译过了。

最新文章

  1. android:layout_gravity和android:gravity属性的区别(转)
  2. Scrapy简介
  3. POJ3260——The Fewest Coins(多重背包+完全背包)
  4. JS获取活动区域高和宽
  5. jar包版本冲突,并且要保留两个版本都能使用
  6. ubuntu 执行apt-get update 提示无法获得锁
  7. 在phpmyadmin后台获取webshell方法汇总整理
  8. [实验]通过内核Patch去掉iOS-v4.3.3的沙盒特性
  9. mysql catalog的名字
  10. asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦
  11. Chrome 禁止从页面打开 Data URI 网址了
  12. 一键快速部署CodeBlocks的EGE图形库工具
  13. C:指针遍历二维数组
  14. c 指针函数 vs 函数指针
  15. HTML空格占位符
  16. Ubuntu14.04 安装MySQL 及Can‘t connect to local MYSQL server through socket ’/var/run/mysqld/mysqld.sock‘ (2)
  17. openssl实现双向认证教程(服务端代码+客户端代码+证书生成)
  18. leaflet入门(二)GeoJson
  19. AngularJS表单验证,手动验证或自动验证
  20. Java Nashorn--Part 1

热门文章

  1. Day2-Python基础2---浅copy、深copy的差别
  2. 机器学习:SVM(scikit-learn 中的 RBF、RBF 中的超参数 γ)
  3. 无法删除image报rbd: error: image still has watchers解决方法
  4. 查看osdmap命令
  5. UE4模型导入基础教程
  6. [置顶] 从零制作文件系统到JZ2440,使其支持telnet , ftp 和tftp
  7. xcode修改横屏
  8. 第一章 深入Web请求过程(待续)
  9. NodeJS之Url的使用
  10. maven 本地jar包依赖生成