Vscode +Msys2配置C/C++环境

该文详细介绍了如何配置VScode以使用Msys2作为C/C++开发环境,包括安装Msys2,通过pacman命令安装编译器,设置VScode的c_cpp_properties.json,launch.json和tasks.json文件,以及创建C/C++项目的过程。此外,还提到了VScode的汉化和检查编译器配置成功的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前期准备:

首先,你需要下载并安装以下软件:

  1. VsCode:https://code.visualstudio.com/
    在这里插入图片描述

  2. Msys2:https://www.msys2.org/
    在这里插入图片描述

下载完成后,你需要按照以下步骤进行配置:

Step1: 安装Msys2

双击 Msys2 安装程序

选择默认路径安装或者自定义路径即可(切记不要有中文路径名,NTFS 卷上仅 ASCII 的短路径,无重音,无空格,无符号链接,无 subst 或网络驱动器,无 FAT)。这里的默认路径可以自定义安装文件夹路径
在这里插入图片描述

完成后,单击完成
在这里插入图片描述
完成后就进入到 Msys2 的命令窗口
在这里插入图片描述

Step2: 安装编译器

在 Msys2 中,可以使用 pacman 命令来安装所有必要的工具。首先,我们需要安装编译器:

打开 Msys2 终端,在命令行中输入以下命令,按照提示安装环境:

pacman -Syu

(更新包数据库和基础包。除非您的安装文件是最新的)
在这里插入图片描述
这里更新完毕以后会强制关闭终端,从开始菜单运行“MSYS2 MSYS”,使用以下命令更新其余基本软件包

pacman -Su

更新其余基本软件包完成后,输入以下命令完成mingw工具链安装(这条命令是全部安装,会有一些用不到的工具)

pacman -S --needed base-devel mingw-w64-x86_64-toolchain

在这里插入图片描述

编译器安装完成后,在cmd窗口输入下面命令,检查编译器配置是否成功

gcc -v
gdb -v

在这里插入图片描述

Step3: 安装VScode

在官网下载完成后,直接安装就行,需要注意的是安装路径不能有中文

安装完成后,直接打开VScode就行

Step4: 配置VScode

汉化
打开 VScode,在左侧的“Extensions”面板中(快捷键Ctrl+Shift+X)搜索“Chinese (Simplified)”插件,安装并启用该插件。然后就可以愉快使用啦

C/C++环境配置
搜索“C/C++”插件,安装并启用该插件。然后打开 VScode 的设置界面(快捷键:Ctrl+Shift+P),在搜索框中输入“C++”,修改以下配置:(编译器路径为上面安装的MSYS2下的gcc路径)
在这里插入图片描述

在项目工程文件夹下创建.vscode文件夹,然后在.vscode文件下创建c_cpp_properties.jsonlaunch.jsontasks.json三个文件
在这里插入图片描述

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "E:/RJ/MSYS2/mingw64/bin/gcc.exe",   //这里的路径填写自己安装gcc或者gdb的路径
            "cStandard": "gnu17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    "version": "0.2.0",
    "configurations": [    
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "C:\\windows\\System32\\cmd.exe",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "&",
                "pause",
            ],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true, //true打开外部控制台,false关闭开外部控制台
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\RJ\\MSYS2\\mingw64\\bin\\gdb.exe",    //这里的路径填写自己安装gcc或者gdb的路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "E:\\RJ\\MSYS2\\mingw64\\bin\\g++.exe",   //改成自己的路径
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "new",   //new 每个进程创建新窗口
                "showReuseMessage": false,   
                "clear": false
            },
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-fexec-charset=gbk",   //这行解决中文乱码问题
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

Step5: 创建C/C++项目

在 VScode 中创建一个 C/C++ 项目或者打开一个 C/C++ 项目,然后在 运行

在这里插入图片描述

现在,你已经成功地配置了 VScode + Msys2 的 C/C++ 环境,可以愉快地编写和编译 C/C++ 代码了!

### 配置 Windows 系统上的 VSCode 使用 GTK 库 #### 安装 GTK 开发库 为了在 Windows 上使用 GTK 进行开发,首先需要安装 GTK 的开发包。推荐通过 MSYS2 来管理这些依赖项。 1. 下载并按照官方指南安装 MSYS2[^3]。 2. 打开 MSYS2 MinGW 64-bit 终端,并更新软件包数据库和核心系统包: ```bash pacman -Syu ``` 3. 关闭终端再重新打开一次新的 MSYS2 MinGW 64-bit 终端窗口来完成更新过程。 4. 安装 GTK 和其他必要的构建工具: ```bash pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-pkg-config base-devel ``` #### 设置环境变量 为了让 Visual Studio Code 能够找到 GTK 工具链,在系统的环境变量 PATH 中添加如下路径: - C:\msys64\mingw64\bin (假设默认安装目录) 这一步骤确保了编译器和其他命令可以在任何地方被调用而无需指定完整路径。 #### 创建简单的 GTK Hello World 示例项目 创建一个新的文件夹作为工作区并将此位置设置为当前的工作空间。接着新建一个名为 `main.c` 的源代码文件,输入以下内容: ```c #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Hello"); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } ``` #### 编写任务配置文件 tasks.json 接下来定义用于编译项目的任务。进入 `.vscode/tasks.json` 文件内编写如下的 JSON 数据结构: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "gcc", "args": [ "-g", "${workspaceFolder}/main.c", "-o", "${workspaceFolder}/hello_gtk.exe", "`pkg-config --cflags --libs gtk+-3.0`" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task to compile the project." } ] } ``` 注意这里的反引号语法是为了让 pkg-config 命令能够正常执行以获取正确的编译参数。 #### 启动应用程序 现在可以通过按 Ctrl+Shift+B 或者点击菜单栏中的 Terminal -> Run Build Task... 来触发构建操作。成功之后会在根目录下生成 hello_gtk.exe 文件,双击它就可以看到 GTK GUI 应用了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AiENG_07

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值