文档章节

(good)整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(主要Windows、简要Linux)

shzwork
 shzwork
发布于 03/18 11:50
字数 3056
阅读 96
收藏 3

弄了半天,总算弄好了,结合网上的教程,整理分享一下~

发现总有童鞋问相同的问题,开始我还以为是没有配置好,今天我自己按照我原来写的尝试了以下,确实出现了问题,可能是VScode或者cpp的插件版本问题,2018.12.29更新,我会用绿色的字体表示。

另外要是本文的更新内容仍然不能解决您的问题,可以看看这篇文章,这篇文章是之后写的,比这篇有条理些,配置过程也简单些。要是始终有问题,欢迎留言,我会抽时间尽我所能解答(非大神有好多解答不了。。。)

总体流程:

下载安装vscode
安装cpptools插件
安装编译、调试环境
配置系统环境变量path
修改vscode调试配置文件
其他
Linux版本配置(简要)
1、下载安装vscode
https://code.visualstudio.com/Download 
 

2、安装cpptools插件 
打开vscode,按ctrl+p打开快速命令框,输入以下命令后等待

ext install cpptools

vscode在短暂的联网查找后会列出插件列表,如图: 

 
 

点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待 
安装完成后vscode会提示你重启vscode,此时重启即可

更新:因为我装这个插件已经是几年之前了,不确定现在界面还是不是这样,但是意思不变,装完后点重新加载就行了

3、安装编译、调试环境
(若是电脑上原来装着codeblocks,Dev C++等可以跳过这步,

直接跳到  【4、配置系统环境变量path】 这步即可)

目前windows下调试仅支持 Cygwin 和 MinGW。 
这里使用的是MinGW. 
下面是MinGW的安装配置过程: 
http://mingw.org/ 
进入官网点击右侧 Download Installer下载安装器 
打开安装器点击install准备安装: 


选择一个安装目录,默认为C:\MinGW这里选择的是A:\MinGW 
点击Continue开始安装,安装过程需联网,若安装时提示error则需翻墙安装 
安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。

 
打开MinGW安装管理器进行进一步配置

注意这里gdb必选,否则无法调试 


选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器 
选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需翻墙更新,建议翻墙。

更新:单独装MinGW ,我最早是这么搞的,要是发现不可以(无法下载或者很怀疑自己MinGW没安装好等),可以试试codeblocks或者Dev-cpp等等,这些IDE自带编译器,还是看这篇文章 里面有使用codeblocks自带的MinGW的细节,当然要是可以就继续。

4、配置系统环境变量path
然后配置系统环境变量path,这一步为必须 
在 我的电脑 上右键 属性: 
然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应 

Windows7注意,要加入,不是覆盖!我第一次不小心把原来路径覆盖了。。。(因为win7不像win10那么明显是加入。。)


再次打开vscode,注意配置系统环境变量path后重启一下vscode 
注意vscode调试需要在打开的文件夹中进行(注意!是用VSC打开文件夹!!,单独打开一个单独的cpp是没有下面的几个配置文件出现的!!也就是说,这个cpp要在一个文件夹里!不像DevCpp和C-Free可以直接调试一个单独的cpp!!)

5、修改vscode调试配置文件
打开文件夹后,新建test.cpp(随便建,或者main.cpp)进行输入代码测试: 


如图示进入调试界面选择C++: 
 


然后会在工作目录下的生成一个launch.json的启动配置文件: 


使用下面代码替换该文件:(只是在vsc自己产生的json文件加了一些行)

launch.json中有很多属性可以设置, 通过智能提示查看有那些属性可以设置, 如果要查看属性的具体含义, 可以把鼠标悬停在属性上面, 会属性的使用说明.

{  
    "version": "0.2.0",  
    "configurations": [  
        {  
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
            "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录  
            "environment": [],  
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",  
            "miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb32.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
            "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [  
                {   
            "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}
注意miDebuggerPath要与MinGw的路径对应 ,我用的codeblocks的gdb,见上面的json文件。

注意miDebuggerPath是\\,与直接粘贴过来的路径不一样,需要加一个”\”(冒号后面的两个反斜杠“\\”),或者使用一个“/”

替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~ 


【注意】,上面的那个目前的cpp插件似乎没有了,若是直接按F5会出现下面这个图,不清楚评论区童鞋说的是不是这个?

请点击第二个“配置任务”,然后出现这个:点就行了~

之后出现:

在这里随便选一个:(我选的others)【随便选,反正最后tasks.json文件要被覆盖】【下面的图是更新之前的图】

然后用下面代码替换:【更新:原来的"version": "0.2.0"似乎会有下划线报错,那就按照vscode说的改为2.0.0好了,下面的是最新的复制即可。】

{
    "version": "2.0.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"],    // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}
保存一下,然后切换至test.cpp,再次按F5启动调试~

【更新:似乎下面的步骤配置c_cpp_properties.json不需要了,因为我按照上面的步骤来似乎没有在头文件有下划线和原来有的灯泡图标什么的,所以下面的开始到 “6、其他” 之前可以不用看,到这里基本配置完成】

配置c_cpp_properties.json
保存一下,然后切换至a.cpp,再次按F5启动调试。
如果前面的配置都对的话,这个时候会进行编译,然后跳出黑框输出Hello World,之后窗口又迅速消失。
可能大多数人已经习惯了VS/VC的便利,其实我们这只要在末尾加上一个cin输入即可。加上int pause;cin>>pause;后再按F5。
但是这个貌似不够高大上,其实我们一般是使用system('pause');实现,换上后再次运行,这时候报错了。因为我们我们引用的库有问题,没有正确引用进来,注意这里不是VS/VC,需要我们自己配置路径。
注意:之前在下载安装GNU哪里已经配置了相应的环境变量,但是VScode中有个配置文件,他是根据自己的配置文件来找的。
在编辑器中,有小波浪的就是代码有问题,看下#include<iostream>,左边有个灯泡,点击后跳出配置文件,修改其中的Win32的"includePath"如下,和上文一样,根据自己的路径进行调整即可。经测试,下图中代码的注册部分仍是必要部分
{
    "name": "Win32",
    "includePath": [
        "C:/Program Files/MinGW/include/*",
        "C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*"
        "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/*"
    ],
    "browse": {
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": ""
    }
}
 

6、其他
一劳永逸:因为VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。
不用每个新cpp文件就要一套配置。这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。

 

最后效果: 
设置断点,变量监视,调用堆栈的查看: 


条件断点的使用: 


新更新:【红色的是很早很早前更新的,2018.12.29更新,会用绿色的字体表示】

最后补一句:

vscode似乎还仅仅支持英文文件名的调试,中文调试的话就会出现“找不到文件XXXXX.cpp”(大意,原文记不清了,因为距离这个问题我已经解决很长时间了,今天看到想补一下,别让新人踩坑了。。。),然后问是否要创建,不知道是BUG还是啥,这纠结了我N久,因为我有些cpp文件是中文命名的,我去Github上找相应的issue也没有找到我想要的这个问题解答,最后偶然间发现英文命名的文件调试时不会出现这个问题,才解决了!!真的很坑!!!新人注意!!!这里浪费了我很长很长时间!!

【要是根据上述方法还没有配置成功,请看评论区是否有人提出了类似问题,还可以按照我在这篇文章之后一段时间写的一篇:这篇文章,那篇文章使用了codeblocks自带的MINGW,而且配置方法比这个简单一些(因为这个是最早写的),要是始终有问题,欢迎留言,我会抽时间尽我所能解答(非大神有好多解答不了。。。) 】

 

Linux版本配置(简要)
也是很早之前配置过Linux的,今天我偶然发现了有以前用Linux配置的文件,感觉步骤都和windows配置不多(似乎没有miDebuggerPath这一项),直接上文件了:

【注意:不确定这个还能不能用,因为是很早之前的了,仅仅做参考】

launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",    // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",         // 配置类型,这里只能为cppdbg
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.o",// 将要进行调试的程序的路径
            "args": [],                // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,     // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "environment": [],
            "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb",
            "preLaunchTask": "g++",    // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
tasks.json:

{
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.o"], // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}
 
--------------------- 
作者:bat67 
来源:CSDN 
原文:https://blog.csdn.net/bat67/article/details/76095813 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文转载自:https://blog.csdn.net/bat67/article/details/76095813

shzwork
粉丝 11
博文 693
码字总数 10605
作品 0
厦门
私信 提问
Visual Studio Code 安装美化合集

这是一个关于VSCode编辑器的各种配置。 你可以在这里找到VSCode 的各种操作,如果这里找不到,请移步官方文档C++ programming with Visual Studio Code以及各个插件的帮助文档中找到。 Visu...

xenny
2018/12/18
0
0
Deepin Linux 下用 vscode 调试 C/C++ 程序

Deepin Linux 下用 vscode 调试 C/C++ 程序 现在网上的大部分类似博客都是错的、有问题的、麻烦的; 而你如果有幸读到我的这篇文章,那么恭喜你,我的是正确的,没问题的,简单的。 Deepin L...

仰望星空的先生
2018/04/02
0
0
VS Code配置c/c++环境

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/G66hero/article/details/100180389 目录 一句话总结 准备工作 下载v...

G_66
09/01
0
0
【VSCode】Windows下VSCode便携式c/c++环境【更新 2018.03.27】

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/c_duoduo/article/details/52083494 Windows下VSCode便携式c/c++环境 ——————2018.03.27更新—————— Visu...

shzwork
03/18
199
0
17 个 Linux 下用于 C/C++ 的最好的 IDE

C++,一个众所周知的 C 语言的扩展,是一个优秀的、强大的、通用编程语言,它能够提供现代化的、通用的编程功能,可以用于开发包括视频游戏、搜索引擎、其他计算机软件乃至操作系统等在内的各...

花仲马
2016/08/22
29.3K
49

没有更多内容

加载失败,请刷新页面

加载更多

【0911】linux软件包安装和卸载

【0911】linux软件包安装和卸载 一、安装软件包的三种方法 1、rpm工具:与win中的exe安装包类似,红帽子公司包管理系统 2、yum工具:属于一种用python开发的工具,支持自动的安装依赖的包 3、...

飞翔的竹蜻蜓
18分钟前
3
0
【外行学IT】手机网页自适应之rem和viewport

在写手机网页时,对于像素的问题会非常困惑,初学者很多时候会因为那么一个小点的问题解决不了,或者无法理解透彻就放弃了学习。 我在学习写手机网页时也困惑了许久,出现过下面的问题: 图片...

前端老手
29分钟前
5
0
三、Java设计模式之单一职责原则

定义:不要存在多于一个导致类变更的原因。 一个类、接口、方法只负责一项职责 优点:降低类的复杂度、提高类的可读性,提高系统的可维护性、降低变更引起的风险

东风破2019
37分钟前
4
0
搭建高可用MongoDB集群(分片)

搭建高可用MongoDB集群(分片) KaliArch关注1人评论28269人阅读2017-12-04 21:57:41 MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423 MongoDB(replica set)请参考:https:/...

linjin200
57分钟前
6
0
Pandas DataFrame创建方法大全

Pandas是Python的数据分析利器,DataFrame是Pandas进行数据分析的基本结构,可以把DataFrame视为一个二维数据表,每一行都表示一个数据记录。本文将介绍创建Pandas DataFrame的6种方法。 创建...

汇智网教程
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部