Windows配置C/C++环境:MinGW+Vscode

Windows配置C/C++环境

  • 主要分为编译器(编译工具链)编辑器的配置
  • 编译工具链:MinGw-w64
  • 编辑器:VSCode

1. 编译工具

1.1 MinGw-w64安装

通过MSYS2安装

  1. 下载MSYS2:MSYS2

  2. 打开MSYS2执行下面的指令

    bash 复制代码
    pacman -Syu
    pacman -S --needed base-devel mingw-w64-x86_64-toolchain

如果在这个地方报错了,比如你就再试一下,可能是网络不好

bash 复制代码
error: failed retrieving file 'binutils-2.45-1-x86_64.pkg.tar.zst' from mirror.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
error: failed retrieving file 'mingw-w64-x86_64-tcl-8.6.16-1-any.pkg.tar.zst' from mirror.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
error: failed retrieving file 'mingw-w64-x86_64-expat-2.7.3-1-any.pkg.tar.zst' from mirror.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
warning: too many errors from mirror.msys2.org, skipping for the remainder of this transaction
error: failed retrieving file 'binutils-2.45-1-x86_64.pkg.tar.zst.sig' from repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
error: failed retrieving file 'mingw-w64-x86_64-expat-2.7.3-1-any.pkg.tar.zst.sig' from repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
error: failed retrieving file 'mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst' from repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
warning: too many errors from repo.msys2.org, skipping for the remainder of this transaction
error: failed retrieving file 'mingw-w64-x86_64-libtre-0.9.0-1-any.pkg.tar.zst' from repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
warning: failed to retrieve some files
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.

1.2 配置环境变量

将 MinGW 的 bin 目录添加到 PATH

例如:C:\msys64\mingw64\bin

  • 右键"此电脑" → 属性 → 高级系统设置 → 环境变量

1.3 检查

打开你的Powshell,输入gcc -v,显示得到版本就行,g++gdb同理

2. 编辑器

2.1 VScode下载

Download Visual Studio Code - Mac, Linux, Windows

2.2 插件安装

插件商店搜索下面的进行安装就行:

  • C/C++ Extension Pack

2.3 JSON文件编写

具体参考我的另外一篇笔记:

需要有这写.vscode文件,常用快捷键如下

  • 编译:ctrl + shift +B
  • 调试:F5

编译的时候选择你要执行的任务,这个在task.json的lable中有写;

在这我就贴出我常用的JSON模板

  • task.json
json 复制代码
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build main.exe",
            "type": "shell",
            "command": "g++",
            "args": 
            [
                "-std=c++20",
                "-o",
                "${workspaceFolder}/main",
                "${workspaceFolder}/hot100/189_rotate.cpp"
            ],
            "group": "build"
        },
        {
            "type": "cppbuild",
            "label": "build main.out",
            "command": "g++",
            "args":
            [
                "-std=c++20",
                "-g",
                "-o",
                "${workspaceFolder}/main.out",
                "${workspaceFolder}/hot100/189_rotate.cpp"
            ],
            "group": {
                "kind": "build",
                "isDefault": false
            },
            "detail": "Task generated by Debugger."
        }
    ]
  • launch.json
json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build main.out" //在launch之前运行的任务名
        }
    ]
}
相关推荐
aduzhe9 小时前
int32 - int32MAX 出现异常
c语言·stm32
一个不知名程序员www9 小时前
算法学习入门---priority_queue(C++)
c++·算法
Pafey10 小时前
C++的左值引用、右值引用以及转发和完美转发
c++
CoderCodingNo10 小时前
【GESP】C++三级真题 luogu-B4414 [GESP202509 三级] 日历制作
开发语言·c++·算法
晨曦夜月11 小时前
笔试强训day7
开发语言·c++·算法
木心爱编程11 小时前
【Qt 5.14.2 新手实战】QTC++入门筑基——按钮与标签联动:QPushButton + QLabel 实现图片切换器
java·c++·qt
Linux编程用C11 小时前
Docker+Vscode搭建(本地/远程)开发环境
vscode·后端·docker
kk”11 小时前
c++红黑树
开发语言·c++
leiming611 小时前
C++ 02 函数模板案例
开发语言·c++·算法
摘星编程11 小时前
Ascend C编程语言详解:打造高效AI算子的利器
c语言·开发语言·人工智能