本例主要说明了使用了配置文件的方式对C/C++代码进行编译和运行的方法。
如嫌麻烦,现常用扩展“Code Runner",下载并重载后,右上角会出现一个箭头,直接点击即可。
Ctrl+Shift+P,输入命令C/Cpp: Edit configurations(命令栏应该有提示)
会生成c_cpp_properties.json文件,其中包含了gcc.exe编译器的路径,默认应该没什么问题,如果不对,在mingw路径中找正确路径并修改。
//c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\WorkSoftware\\MinGW\\bin\\gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
需要生成一个tasks.json文件。
1.打开命令面板(Ctrl+Shift+P)。
2.选择Tasks: Configure Task命令,单击Create Tasks。将看到一个任务运行器模板列表。
3.选择Others创建运行外部命令的任务。
现在应该看到一个任务。json文件在工作区.vscode文件夹中。
//模板
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "echo Hello"
}
]
}
4.对tasks.json进行一些修改
可将command更改为用于构建应用程序的命令行表达式(例如g++)。
添加任何必需的arg(例如 -g 构建用于调试)。
还可以将标签更改为更具描述性。
如果像通过Tasks: Run Build Task (Ctrl+Shift+B)来构建程序,可以添加构建group。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build hello world",
"type": "shell",
"command": "g++",
"args": [
"-g", "vscodetextc1.c"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
如果需要调试,则需要生成一个launch.json
单击补充工具栏中的“调试”图标,导航到“调试”视图。
在“ 调试”视图中,单击“ 配置”图标。
从“ 选择环境”下拉列表中选择C++ (GDB/LLDB)(使用GDB或LLDB)或C++ (Windows)(以使用Visual Studio Windows调试程序)。这将使用两种配置创建一个用于编辑的文件: launch.json
C ++ Launch定义了在开始调试时启动应用程序的属性。
C ++ Attach定义了附加到已经运行的进程的属性。
此处我们选择了第一个C++(GDB/LLDB)
//最初
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
将program修改到正在调试的程序的路径;
将miDebuggerPath修改指到mingw中的gdb.exe;
如果希望在开始调试时构建应用程序,可以添加一个preLaunchTask属性,其中包含在其中创建的构建任务的名称tasks.json(就是tasks.json中label的值,在上面的示例中为“build hello world”)。
launch.json的备忘
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/WorkSoftware/MinGW/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build hello world"
}
]
}
点击调试窗“变量”上方绿色箭头或者菜单栏“调试->启动调试”或者 F5。
https://code.visualstudio.com/docs/languages/cpp#_windows-debugging-with-gdb