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之前运行的任务名
        }
    ]
}
相关推荐
aaaameliaaa1 小时前
指针之总结
c语言·笔记·算法
agathakuan1 小时前
Wireshark 解密並導出TLS 1.2 / TLS 1.3 明文的方法(可控制 Client 端)
c语言·wireshark·ssl·openwrt
noipp1 小时前
推荐题目:洛谷 P6231 [JSOI2013] 公交系统
c语言·数据结构·c++·算法·游戏·洛谷·luogu
c238562 小时前
C/C++每日一练6
c语言·c++·算法
wdfk_prog2 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
念恒123062 小时前
网络基础
linux·网络·c++
mct1233 小时前
c++ iconv 字符utf-8转换gb2312失败
开发语言·c++
ziguo11223 小时前
Windows API 文件操作超级指南——从入门到内核
c++·windows·visualstudio
时间的拾荒人3 小时前
MySQL C语言连接 - 从入门到实战
android·c语言·mysql
放学校门口见3 小时前
vscode部署stm32开发调试环境
ide·vscode·stm32