1配置文件
一般vscode配置C++有三个文件,它们分别是:
1.1.c_cpp_properties.json
设置编译环境参数。通过Ctrl+Shift+P,输入C++,在下拉菜单中选择“C/C++ Edit configuration”,系统自动会在.vscode目录下创建该文件,供我们设置编译环境。可根据自己需求改动如下配置,默认配置如下:
{ "configurations": [ { "name": "Win32", // 环境名称 "includePath": [ // 头文件包含路径,当前指定的是工作目录,有需要可添加,加入相应的文件路径即可 "${workspaceFolder}/**" ], "defines": [ // 预处理定义 "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "C:\mingw64\bin\gcc.exe", // 编译器路径 "cStandard": "gnu17", // 设置C标准库 "cppStandard": "gnu++14", // 设置C++标准库 "intelliSenseMode": "gcc-x64" // 设置补全模式 } ], "version": 4 }
1.2.tasks.json
设置编译参数,通过Ctrl+Shift+p,输入task,在下拉菜单中选择Tasks: Configure Default Build Task -> Create task.json file from templates -> Others,系统自动在.vscode下创建task.json文件,供我们设置具体的编译规则。根据实际请求修改如下:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build C++ train", // 当前编译任务名字 "type": "shell", "command": "g++", // 编译时执行的程序 "args": ["-g", "${workspaceFolder}/*.cpp" , "-o", "train"], // 传递给command的参数,也就是编译参数 "group": { "kind": "build", "isDefault": true // true,用户可以通过Ctrl+Shift+B直接运行编译任务 } } ] }
其中:${workspaceFolder}表示当前工作文件夹,加上/*.cpp表示多所有的.cpp文件进行编译。
通过编译之后,就会自动链接生成可执行文件。
3.launch.json
设置调试参数。通过Ctrl+Shift+P打卡命令行,输入“lauch”选择“Debug: Open launch.json” -> "C++(GDB/LLDB)",即可打开调试配置文件launch.json。配置后之后,按F5,进入调试模式,配置如下:
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg", "request": "launch", "program": "输入程序名称,例如 ${workspaceFolder}/a.exe", // 设置exe路径 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/path/to/gdb", // 设置当前系统的gdb路径,windows下是gdb.exe "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
进行Debug的前提,需要在可执行程序时加入了编译选项-g。这样gdb才可以调试。