时隔一年终于在VSCode配置好了C++环境[MinGW]
- 基础部分
- 踩坑
- 坑0
- 坑1
- 坑2
- 坑3
基础部分
就是安装VSCode,然后再安装C++插件之类的,咱这就不罗嗦了,如果不清楚可以参考这篇文章:VSCode配置C/C++环境
毕竟解决后面一些棘手的问题更重要。
踩坑
当你按照大多数网上能搜到的普通教程配置完后,很可能会出现一些问题,一般来说都是编译程序之后,启动程序的过程中出现的问题,因此问题集中在launch.json上
这里说一下.vscode文件夹下各个文件都是干啥的
文件名 | 功能 |
---|---|
tasks.json(必要) | 告诉 VSCode 如何编译 .cpp 文件,配置后将调用 g++ 编译器基于源代码创建可执行文件 |
launch.json(必要) | launch.json 可以使用F5使VSCode启动GDB调试器来调试程序 |
c_cpp_properties.json(非必要) | C++插件生成的配置文件,可以实现更多控制,改变编译器的路径、C++ 标准(默认为 C++17)等等 |
坑0
如果遇到上面文中出现过的一直报 "Unable to create ‘launch.json’ file inside the ‘.vscode’ folder (Cannot read property ‘name’ of undefined)."这个错误 的情况,可以自己新建tasks.json,launch.json,然后往里面写入内容(参考那篇文章的内容,我自己写了一个tasks.json,注意:各自的编译器路径不一样,要把路径填写正确)
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"preLaunchTask": "C/C++: g++.exe 生成活动文件",//调试前执行的任务,就是之前配置的tasks.json中的label字段
"type": "cppdbg",//配置类型,只能为cppdbg
"request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
"args": [],//调试传递参数
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
"MIMode": "gdb",
"miDebuggerPath": "X:\\xx\\bin\\gdb.exe",// 要改成自己的路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
坑1
报错 “launch: program ‘xxx’ does not exist”,你需要检查一下是不是安装了C++ Runner,如果安装了就卸载掉,否则会影响启动程序
打开调试界面,你会看到"运行和调试"这的下拉选项框,应该用GDB Launch而不是C++ Runner
仅安装一款C++插件即可,推荐应用广泛的C++工具
坑2
MinGW是不支持中文路径的,所以路径中不能有中文
否则无论你如何修改你的配置文件,例如launch.json tasks.json ,程序运行时都会报错
错误信息:No such file or directory
意思是找不到文件或路径
坑3
留意一下tasks.json中的preLaunchTask和launch.json中的label是否相同,一定要相同才行
目前我碰到的坑大概就这些,希望你也早点配置成功