VSCode+TDM-GCC编译环境配置
前言
这是我写的第一个博客,写博客的目的是总结自己所学,方便自己或他人查阅,同时也能再次巩固自己的知识。初期我将从OJ练习题入手,后续再总结自己感兴趣的知识。
VSCode配置
VSCode是目前主流的开源编辑器,可扩展性很强,适用于多种语言,可配置单步调试功能。下面介绍VSCode的安装与简单配置。
- 从官网中下载指定平台的VSCode。
- 安装必要的插件,包括C++编辑器和简体中文插件。
- 下载GCC编译器,我选择的是TDM-GCC,因为其提供的GDB版本支持python,可以使用pretty-printing。从这里下载。
- 安装好之后配置vscode的编译任务。首先写一个C++程序,命名为main.cpp。再从菜单栏->终端->运行任务创建一个task.json文件,下面是一个简单的任务示例。
{
"version": "2.0.0",
"tasks": [
{
"label": "g++",
"type": "shell",
"command": "g++ -g -std=c++11 main.cpp -o main",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$gcc"
}
]
}
- 点击左侧的调试并运行活动栏,创建一个launch.json文件,用于编写调试相关的配置,下面是用于GDB调试的配置文件。
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
// 要进行调试的可执行文件的路径
"program": "${workspaceRoot}/main",
// gdb调试器路径,这里选择TDM-GCC安装目录下的gdb
"miDebuggerPath":"C:/TDM-GCC-64/bin/gdb64.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
// 调试会话前执行的任务,这里是task.json中配置好的编译任务
"preLaunchTask": "g++",
// pretty-printing配置,可以直观打印出C++中的容器
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
}
]
}
开始调试第一个C++项目
按F5开始调试,左侧本地变量中可以看到stack容器被直观地打印出来了。
如果不开启pretty-printing的话,查看本地变量将呈现如下形式,不直观。
TDM-GCC的GDB调试器支持python,而从MinGW官网下载的不支持,其实也可以下载GDB源码,编译出支持python的GDB(编译前如果选择支持python,那么默认将自带pretty-printing功能)。
我们可以通过如下方法查看当前版本GDB是否支持python,在命令行中输入gdb,再输入python print sys.version
查看python版本。如果提示python命令找不到,那么当前版本GDB不支持python。