VScode与MSYS2的C语言环境配置相关问题,笔者已经各种方式尝试了多次,终于有了一些经验,遂记录下来。

        该方案虽然不是最优解,但具有较好的适配性,为在VSCode中使用MSYS2进行C开发提供了可行方案。

一、开始配置

        笔者主要是从这里开始的,VS Code 配置 C/C++ 编程运行环境(保姆级教程)https://blog.csdn.net/qq_42417071/article/details/137438374?fromshare=blogdetail&sharetype=blogdetail&sharerId=137438374&sharerefer=PC&sharesource=2301_79468118&sharefrom=from_link

二、找不到头文件

        然后果然遇到了一些问题,首先就是C的头文件:

#include <stdio.h>报“无法使用 compilerPath 解析配置”

笔者查看了这篇文章,于是解决了:vscode提示“无法使用 compilerPath 解析配置”解决办法https://blog.csdn.net/kevin1499/article/details/149879452?fromshare=blogdetail&sharetype=blogdetail&sharerId=149879452&sharerefer=PC&sharesource=2301_79468118&sharefrom=from_link

具体操作步骤:

① Ctrl+Shift+P,选择C/C++ 编译配置,

② 将图中标记的路径改为你自己的就可以了,遂解决了这个问题,这个比较简单,配置一下就可以了。

三、exe文件不存在

这里完整报错为:

launch:program '输入程序名称,例如a.exe' does not exist

报了一个launch.json配置文件的问题,于是笔者跟着AI将这个改了,后面发现问题并不在这里,而是在tasks.json文件里面,你需要要把你的ucrt64的路径配过去。

        于是笔者探索了新方法,两个文件和使用方法都给在后面了。

补充:ucrt64和mingw64的区别

        这里就简单说一下,需要更详细的话,建议直接问AI或者去搜更多的文章:

MINGW64 = 老运行时 msvcrt.dll → 兼容老系统,但标准旧、中文坑多

UCRT64 = 新运行时 ucrtbase.dll → 现代标准、中文友好、Win10 + 首选

特性 MINGW64 UCRT64
C 运行时 msvcrt.dll (老) ucrtbase.dll (新)
系统支持 Win7 ~ Win11 全兼容 Win10 1709+ / Win11
C/C++ 标准 C11/C++17(部分缺失) 完整 C23/C++23
中文 / Unicode 一般,易乱码 / 路径报错 非常好
GCC 版本 稍旧 最新
Windows API 老 API 新 API 完整支持
适合场景 要兼容 Win7 的老项目 新项目首选、现代 C++、中文项目

*四、两个文件

        然后这里笔者直接将自己配置好的launch.json和tasks.json给出,需要者自取,将对应的地址改成自己的就可以了。

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc 调试",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "console": "externalTerminal"
        }
    ]
}

tasks.json

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: gcc.exe 生成活动文件",

			"command": "D:\\DevTools\\MSYS2\\msys64\\ucrt64\\bin\\gcc.exe",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "D:\\DevTools\\MSYS2\\msys64\\ucrt64\\bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "调试器生成的任务。"
		}
	]
}

*五、使用方法

        将刚才的两个文件都放到.code文件夹下,编译运行,成功。

  

        后续直接在你的工作目录下,将.code文件夹复制过去就行,然后就正常的编译调试运行,就都没有问题了。

        这里笔者进行了一下测试,创建了一个新的目录test,

然后打断点,调试:

        可以看到,使用没有任何问题。

六、总结

        这就是笔者目前的配置了,虽然不是最方便的,但感觉适配性也可以,勉强能用。后续也希望大佬留言,给出更好的方法和博客链接。

更多推荐