vscode是微软的最新产品,轻量易用,最初是前端用的多,尤其是typescript,因为vscode的作者也是typescipt作者。一般c++的IDE很多,比如visual studio等,但是都不太好用,所以,这里,使用vscode,下面讲解主要步骤。

  • 安装vscode。
  • 安装必要c++插件。
  • 安装编译、调试环境。
  • 修改vscode配置文件。
  • 运行
  • 调试

一、安装vscode

  vscode是免费的,所以直接下载安装就好。

二、安装必要c++插件

  在vscode左侧找到插件库,安装 c/c++ 插件(必须)、C++ Intellisense(非必须)、Include Autocomplete(非必须)。

三、安装编译、调试环境

  网上找到mingw,直接安装,只要和本机匹配即可。

  安装之后,配置环境变量,配置好环境变量,通过g++ xx.cpp -o xx来检测是否可以用命令行来编译c++文件,如果可以,说明安装成功。

四、修改vscode配置文件

  即在vscode中打开文件夹->创建新的文件夹->选中,这样就直接加入到vscode中了;或者直接把一个文件拖入vscode中;假设我们新建的文件夹名称为Foo。

  接着,在这个Foo下创建一个.vscode文件夹,这是必须的(一般来说,每个文件夹中都会有这么一个.vscode配置文件)。注意:将此文件夹放在常用文件夹顶层,就不需要重复配置了。

  在.vscode文件夹中,新建三个(只需三个)配置文件,即c_cpp_properties.json、launch.json、tasks.json。然后内容如下:

  c_cpp_properties.json (注意:每台电脑装mingw的位置可能不一样,根据everything确定!),这个配置文件指定mingw所在位置,方便vscode自动调用:

{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/mingw32",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/backward",
"C:/mingw/lib/gcc/mingw32/5.3.0/include",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/tr1",
"C:/mingw/mingw32/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/mingw32",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/backward",
"C:/mingw/lib/gcc/mingw32/5.3.0/include",
"C:/mingw/lib/gcc/mingw32/5.3.0/include/c++/tr1",
"C:/mingw/mingw32/include"
]
},
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
],
"version":
}

  

  launch.json文件(注意:其中的miDebuggerPath可能也是不一样的,需要注意):

{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${file}.exe", // 将要进行调试的程序的路径
"miDebuggerPath": "c:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"args": [
"blackkitty",
"",
"# #"
], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"preLaunchTask": "g++" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
}
]
}

  tasks.json(这个所有都一样,无需个性化修改):

{
"version": "0.1.0",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${file}.exe"
], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": ,
"line": ,
"column": ,
"severity": ,
"message":
}
}
}

  

  

五、运行

  接下来,就需要创建cpp文件了,如下,在Foo下创建一个a.cpp:

#include <iostream>
#include <windows.h>
#include <vector>
using namespace std; int main() {
cout << "hedy, I love you!" << endl;
vector<int> a;
a.push_back();
cout << a[] << endl;
system("pause");
return ;
}

  然后,我们点击左侧的debugger按钮,在这个状态下,就可以按下F5编译运行了,得到如下结果:

  这就说明我们已经可以自动运行了。

  

六、调试

  调试也非常简单,直接打断点即可,如下:

  即直接在我们需要判断的行处打断点,然后继续F5执行,就可以在DEBUG栏看到相应的内容了。

vscode下调试运行c++的更多相关文章

  1. 在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)

    原地址:http://www.myexception.cn/program/1399860.html 在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly) 在MAC下调试运行暗黑世界 ...

  2. 再整理:Visual Studio Code(vscode)下的基于C++的OpenCV的最新搭建攻略解析

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/czlhxm/p/13848278.ht ...

  3. vscode远程调试c++

    0.背景 最近在学习linux webserver开发,需要在linux下调试自己的C/C++代码,但是linux下不像在windows下,直接Visio Studio或者其它集成开发环境那么方便,现 ...

  4. python项目在windows下运行出现编码错误的解法

    在启动文件里面加入 import sysreload(sys) sys.setdefaultencoding('GB2312') 这样在windows下调试运行神马的,就不会报错了. 当然发布时,建议 ...

  5. sublime构建执行go程序真爽

    1.安装gosublime插件 2.直接在sublime下调试运行共程序,不用去cmd了: 选择编译系统,编译,出现下面的模拟命令行,直接执行go的命令即可,比如go run process.go,结 ...

  6. 跟我一起学WCF(3)——利用Web Services开发分布式应用

    一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 We ...

  7. Debugger Exception Notification

    --------------------------- Debugger Exception Notification --------------------------- Project PJSP ...

  8. app.config *.exe.config 和*.vshost.exe.config基础学习

    一.问题描述 在使用config文件来保存一些参数,便于下次启动程序时自动加载上次设置的参数的功能时, 碰到个问题,vs2010下调试运行程序始终无法实现config记录上次参数值,而直接运行exe程 ...

  9. vs2012 网站无法使用自定义服务器的解决方法

    我已经习惯新建一个Asp.net网站时把它挂载在IIS下调试运行,在使用Visual Studio 2012后,新建网站配置启动选项时,自定义服务器居然不可用 原来是Visual Studio 201 ...

随机推荐

  1. Determine YARN and MapReduce Memory Configuration Settings

    Determine YARN and MapReduce Memory Configuration Settings https://docs.hortonworks.com/HDPDocuments ...

  2. Oracle使用——oracle复制表

    复制表结构和数据 create table table_name_new as select * from table_name_old; 复制表结构 ; 复制表数据(全量插入数据) 两个表结构相同 ...

  3. kettle 连接 SQL Server 异常

    场景重现 新安装的 kettle(pdi-ce-7.0.0.0-25) 连接 SQL Server 2012 时报错如下: 解决办法 到 https://sourceforge.net/project ...

  4. yum downloadonly模式,保存所需软件及其依赖包

    command: sudo yum install --downloadonly --downloaddir='yourderictory'

  5. 1_bytes和str

    数据运算全跳过,语言都一样,格式差异 bytes/str的区别    Python3不会以任意隐式的方式混用bytes和str,不能拼接字符串和字节包也无法在字节包里搜索字符串(反之亦然)    二进 ...

  6. Mac配置Scala和Spark最详细过程

    Mac配置Scala和Spark最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8567337.html 原文作者: 博客园--曲高终和寡 一,准备工作 1 ...

  7. angular面试记忆的内容

    1.ng-class的用法:ng-class="{red:true}"; 2.ng-repeat怎么可以添加重复数据.ng-repeat="item in arr tra ...

  8. 基于TCAM 的高速路由查找

    摘要 随着路由器接口速率的提高,传统的软件路由查找机制已经不能满足要求.目前常见的硬件解决方案是采用TCAM实现关键词 TCAM,路由查找,最长前缀匹配. 1.引言 路由器转发IP 分组时,转发引擎需 ...

  9. javascript里文字选中/选中文字

    一.获取/清除选中的文字 //获取选中的文字 document.getElementById("get").onclick = function () { var txt = wi ...

  10. hdu-1043 bfs+康拓展开hash

    因为是计算还原成一种局面的最短步骤,应该想到从最终局面开始做bfs,把所有能到达的情况遍历一遍,把值存下来. bfs过程中,访问过的局面的记录是此题的关键,9*9的方格在计算过程中直接存储非常占内存. ...