VSCode安装,配置,编译运行C++(详细整理)

听闻visual studio code很方便,今天早上为了在上面打段代码,便跟着几个帖子开始配环境:
本文综合下述帖子得来:
知乎:https://www.zhihu.com/question/30315894
CSDN:先建cpp再跟着配置文件https://blog.csdn.net/zjwengyidong/article/details/53789533
博客园:先新建配置文件再建cpp调试
https://www.cnblogs.com/lkpp/p/vscode-cpp.html
上述二者都比较简洁,其中关于文件夹和环境配置的我又从下面2帖得到:
百度:Win7 64位下安装配置mingw-w64 C++开发
https://jingyan.baidu.com/article/19192ad816ea01e53e570730.html
CSDN:这位大神就写的比较详细了,如果觉得我的不够详细,强烈推荐看这位大神的
https://blog.csdn.net/bat67/article/details/76095813
开始安装和配置VScode,问题还是很多滴,下面来从最基本的开始:

步骤

1.安装VSCode
2.在VSCode内安装c++插件
3.安装编译、调试环境
4.修改VSCode调试配置文件

1.安装VSCode

下载地址:https://code.visualstudio.com/?utm_expid=101350005-25.TcgI322oRoCwQD7KJ5t8zQ.0
选择适合自己系统的下载之后安装就行

注意1:安装的时候一定要注意,选择自定义路径还是默认的,我选择了自定义的,导致后面配置文件费了很多时间,在此建议大家默认C盘就好

2.在VSCode内安装c++插件

打开VScode,在左侧一栏,最下面一个-->扩展,然后输入C++,然后点击安装,安装之后重启生效


111.png

3.安装编译、调试环境

安装和配置MinGW

目前windows下调试仅支持 Cygwin 和 MinGW。看大部分帖子均推荐使用MinGW.

  • 3.1下载地址:

http://mingw-w64.org/doku.php/download

image.png

  • 3.2下载之后安装以及配置系统路径

这里我是默认的


image.png
  • 3.3配置mingw-w64环境变量:

注意2:在此建议大家先把自己安装mingw-w64的路径找正确,一直浏览到含bin的文件目录下,然后复制

image.png
  • 在桌面找到我的电脑图标->右键->属性->高级系统设置->选择“高级”选项->选择下面“环境变量”->Administrator 的用户变量,在path中新增安装mingw-w64的路径:盘符:你的安装路径\mingw64\bin;
    在此我的安装路径是:E:\Program Files (x86)\mingw-w64\i686-7.3.0-posix-dwarf-rt_v5-rev0\mingw32\bin;所以我添加到path的就是这个路径

    image.png

    image.png

  • 3.4验证mingw-w64是否安装配置成功

环境变量配置好之后,最好重启电脑;
然后打开命令框cmd输入:gcc -v
显示如下信息 表示安装配置成功


image.png

4.修改VSCode调试配置文件

4.1新建文件夹

打开vscode,文件-->打开文件夹-->右键-->新建文件夹-->VS-Code-C
解释:安装好vscode会在文档下面默认生成个vscode的文件夹,但是这个文件夹下面可能以后会有多种语言的代码,所以建议生成对应语言的子文件夹,比如打算写C就新建VS-Code-C这个文件夹


image.png

4.2再新建.vscode文件夹

然后,在VScode中打开刚刚新建的VS-Code-C这个文件夹,在这个文件夹下,新建.vscode文件夹(点是需要的)

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

image.png

4.3新建三个配置文件

然后在.vscode这个文件夹下面,新建三个配置文件,每次都是新建,然后代码如下,然后另存为相应的格式


image.png

注意4:"miDebuggerPath"中miDebugger的路径,注意这里要与MinGw的路径对应
注意5 :miDebuggerPath是\,与直接粘贴过来的路径不一样,需要加一个”\”(冒号后面的两个反斜杠“\”)

image.png

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)",                 // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",                           // 配置类型,这里只能为cppdbg
            "request": "launch",                        // 请求配置类型,可以为launch(启动)或attach(附加)
            "launchOptionType": "Local",                // 调试器启动类型,这里只能为Local
            "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",  "1221", "# #"],     // 程序调试时传递给程序的命令行参数,一般设为空即可
            "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": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

c_cpp_properties.json

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

我自己换了路径,一定要保证换到自己安装的对应路径下面,不要粘贴复制过去就不管啦


image.png

4.4 新建*.app文件

上述三个配置文件配置好之后保存,然后在.vscode文件夹外面,新建一个a.cpp

 #include <iostream>
    using namespace std;

    int main()
    {
        cout<<"Hello World!"<<endl;
        return 0;
    }

在return那一行添加断点,点击左侧倒数第二个调试,再点击左边调试栏上方的设置按钮,选择c++编译环境,点击绿色图标进行调试,如果各种配置成功,就会出现如下效果啦!调试也可以按F5


image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容