前言

[title-plane title=”前言”]本文介绍了 VScode + mingw-w64 配置 C/C++ 开发环境的步骤,整理了官方及优秀第三方的内容,对学习和工作有一定借鉴意义。[/title-plane]

配置过程

1. 安装 VsCode

https://img-blog.csdnimg.cn/20200130195410736.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTgxMjIwMQ==,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/2020013021212998.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTgxMjIwMQ==,size_16,color_FFFFFF,t_70
[c-alert type=”warning”]注意:一定要将 添加到PATH 这项打钩!!![/c-alert]

2. 安装 C++ 插件

打开VScode,在左侧一栏,最下面一个图标是扩展商店,或者快捷键==ctrl+shift+x==直接切换到商店界面,然后输入C++,然后点击安装,安装之后重启生效,安装其他插件也是在这里搜索安装。

https://ae01.alicdn.com/kf/U0e83404212b9494fbbf3bfff46d73451r.jpg
[start-plane type=”1″]这里我推荐几个我学习码代码常用的插件:[/start-plane]

1) Chinese (Simplified) Language 中文界面配置插件,英语大神请忽略

https://ae01.alicdn.com/kf/Ub409e5b4b9bf40f3bf188671b7be2a1fO.jpg

2) vscode-icons 图标插件可以使得文件结构更加清晰

https://ae01.alicdn.com/kf/U1843281076554a3ca61be2e58ace0b62q.jpg

3) Bracket Pair Colorizer 括号高亮,彩虹括号

https://ae01.alicdn.com/kf/U89817d9b69db4168be4b1d6e13a291e82.jpg

4) One Dark Pro 一个非常好看的黑色界面主题插件

https://ae01.alicdn.com/kf/U1a3136716f754f65915a9946a92232ffK.jpg

5) Code Runner 代码运行插件,右键即可编译运行单文件,很方便

https://ae01.alicdn.com/kf/U2c21732db8f141bebbdc0cfa6a0ebbb9o.jpg

3. 安装 编译调试环境

[start-plane type=”1″]Windows 系统 按照下面步骤配置[/start-plane]

选择图中红色标记,点击会自动跳转下载面下载

https://ae01.alicdn.com/kf/U8056d6973d844a608c44ec5394d716707.jpg

下载完后,直接将 mingw-w64 解压到一个合适的目录,比如我解压C:\Program Files下。

[c-alert type=”warning”]提示 :推荐放C盘,路径好找,只有600M左右,不影响。[/c-alert]

  • 配置环境变量

1. 找到解压的目录,复制解压出来的bin目录的地址

https://ae01.alicdn.com/kf/Udf8b892a2c8e4597bb7109735509d0bdY.jpg

2. 右击此电脑选择属性

https://ae01.alicdn.com/kf/U3c23e6da637c48ecafe8d1b2d85d124cB.jpg

3. 依次点击 高级系统设置 — 环境变量

https://ae01.alicdn.com/kf/Uc8fedf8e13924130b33f13cc6ca5a1f4M.jpg

4. 点击Path,选择编辑,用户变量和系统变量两个Path都要改哦

https://ae01.alicdn.com/kf/U11fc4ac58dff49d9b37a05a85391e7e8a.jpg

5. 新建,将复制的目录位置粘贴到此,确定

https://ae01.alicdn.com/kf/Ud15ea8aba4cf4d2f8599192451cdec49D.jpg

6. 在桌面上按住shift点击鼠标右键-在此处打开powershell, 输入 gcc -v , 看到如下界面说明环境变量配置成功

https://ae01.alicdn.com/kf/U775e6e6a88174fbfadd5e60368e3d84aA.jpg
  • 配置VS Code调试环境

1. 建议配置前新建一个目录专门用来存储C/CPP文件,因为配置VS Code会默认保存到配置时文件目录下。我这已创建一CPP文件夹。

2. 打开CPP文件夹,新建 .vscode 文件夹并打开

https://ae01.alicdn.com/kf/Ufb58cc5def0a42c9af6c5c7a8925e834O.jpg

3. 在 .vscode 文件夹中,依次新建3个文件,名称如下:

[start-plane type=”1″]

c_cpp_properties.json

launch.json

tasks.json

[/start-plane]

https://ae01.alicdn.com/kf/U6b1ee3b96d10403a8f49c186a7342f14M.jpg

4. 配置这3个文件

[c-alert type=”success”]

“miDebuggerPath”: 后面修改为你的 mingw64 路径

“preLaunchTask”: “task g++”tasks.json 中的 “label”: “task g++” 引号中的名字要一致,本代码中为 task g++

[/c-alert]

// launch.json 配置
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) Launch",
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", 
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++",//调试前执行的任务,就是之前配置的tasks.json中的label字段
        }
    ]
}
// tasks.json 配置文件
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "task g++",//任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置
            "command": "g++",
            "args": [//编译时候的参数
                "-g",//添加gdb调试选项
                "${file}",
                "-o",//指定生成可执行文件的名称
                "${fileDirname}/${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
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true//表示快捷键Ctrl+Shift+B可以运行该任务
            }
        }
    ]
}
// c_cpp_properties.json 配置文件
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:/mingw64/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

5. 配置完上面3项,你的vscode应该就可以正常调试了

 

在这里插入图片描述
在这里插入图片描述
[start-plane type=”1″]Linux 系统 按照下面步骤配置[/start-plane]
  • 安装 gdb 调试环境

1. 打开终端,在root用户权限下:输入以下命令

apt-get update
apt-get install gdb

如图,按提示操作即可,等待程序执行完成就安装好gdb了

https://ae01.alicdn.com/kf/Ub3ac51de916540ae9cceaeac849d2d98m.jpg

2. 参考上面windows教程,安装 vscode,安装拓展插件,新建文件夹和4个配置文件。

[start-plane type=”2″]

deb包安装方式步骤:

1、找到相应的软件包,比如soft.version.deb,下载到本机某个目录;

2、打开一个终端,su -成root用户;

3、cd soft.version.deb所在的目录;

4、输入dpkg -i soft.version.deb

[/start-plane]

3. 配置这4个文件

[start-plane type=”1″]

“miDebuggerPath”:后面修改为你的 gdb 路径

“preLaunchTask”: “build”tasks.json 中的 “label”: “build” 引号中的名字要一致,本代码中为 build

[/start-plane]

// launch.json 配置文件
{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}
// tasks.json 配置文件
{
    // 有关 tasks.json 格式的文档,请参见
        // https://go.microsoft.com/fwlink/?LinkId=733558
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "g++",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}.out",
                    "-l",
                    "pthread"
    ​
                ],
                "presentation": {
                    "reveal": "never"
                },
                "problemMatcher": [
                    "$gcc"
                ]
            }
        ]
 }
// c_cpp_properties.json 配置文件
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
// settings.json 配置文件
{
    "files.associations": {
        "iostream": "cpp",
        "stdio.h": "c",
        "ostream": "cpp",
        "array": "cpp"
    }
}

4. 配置完上面4项,你的vscode应该就可以正常调试了

https://ae01.alicdn.com/kf/Ua4eebbd258aa4034a5812fa19d5c1c40m.jpg
https://ae01.alicdn.com/kf/U25d2b40109c84c5684001ebcdff098afH.jpg

优化配置(必看)

[c-alert type=”warning”]以下内容真的很重要,一定要看, 不看悔死你 !!![/c-alert]

  • 程序文件路径不要有 中文,否则会导致 调试失败
  • Vscode设置保留在单文件夹中,你如果要更换文件夹,请把 .vscode 文件夹也复制到你要更改的文件夹中
  • 中文显示乱码问题 VS code 编码设置/文件乱码
    • 点击文件->首选项->设置,然后在右边用户设置输入:“files.autoGuessEncoding”: true
    • 插入这一行内用并保存。
    • 或者如下图打钩:
https://ae01.alicdn.com/kf/U56c13d0b479241139d39a2be0a3e7956U.jpg

加入这个设置后,VSCode会在打开文件时尝试猜测字符集编码。

  • VsCode内部终端运行代码

设置在终端运行 : 首选项 -> 设置 -> 扩展 -> Run Code ,勾选 Run In TerminalSave File Before Run

https://ae01.alicdn.com/kf/U20cf561ae02341fba47ce330a2c65930g.jpg

这样的话 写个demo运行一下吧(这里是右击运行的,也可以用快捷键,不过这里的快捷键已经被我修改过了。

完成

至此,配置已经全部完成,开始快乐的开发你的C/C++程序吧!!