VSCode C++ 开发配置
最近在用vscode写C++程序,记录一下调试方法。
c_cpp_properties文件
vscode的C/C++扩展程序会根据当前系统环境配置基本信息,因此有可能配置不完整,这时需要通过生成c_cpp_properties.json文件来配置缺少的信息:
ctrl+shift+P打开Command Palette,运行C/Cpp: Edit configurations...生成c_cpp_properties.json:
{
"configurations": [
{
"name": "Linux", //配置名称,默认为系统名,可以自行更改
"includePath": [ //(常用)运行项目包含.h头文件的目录,
"${workspaceFolder}/**"//此处会匹配工作文件下的所有文件,**意味着递归搜索子目录
], //添加"compilerPath"后,系统include路径可不写明
"defines": [], //(常用)定义一些需要的变量,等价于在编译时写"-D变量"
"compilerPath": "/usr/bin/gcc", //编译器的路径
"cStandard": "gnu17", //C标准的版本
"cppStandard": "gnu++14", //C++标准的版本
"intelliSenseMode": "gcc-x64" //IntelliSense的一些配置,默认即可
}
],
"version": 4
}
官方参考文档:https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference
常用的变量名:
${workspaceFolder} - VS Code当前打开工作区文件夹的路径
${file} - 当前打开文件的绝对路径
${fileBasename} - 当前打开文件的名称
${fileBasenameNoExtension} - 当前打开文件的名称,但是不加后缀名
${fileDirname} - 文件所在的文件夹路径
task.js文件
tasks.json 是在 vscode 中辅助程序编译的模块,可以代你执行类似于在命令行输入 “gcc hello.c -o hello” 命令的操作,你只要在图形界面下操作即可生成可执行文件。
当你在项目文件夹下打开 vscode 后:
- 选择“终端”; 2) 选择“配置任务”; 3) 选择你想使用的编译器(这里本人选择 gcc);
即可生成默认的 tasks.json 文件。
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild", //任务类型(如果是shell,下面的command就相当于执行shell命令)
"label": "环境配置测试", //任务的名称,可以修改,但一定要和launch中的"preLaunchTask"项保持一致
"command": "/usr/bin/gcc", //编译器(可执行文件)的路径
"args": [ //(常用)编译时使用的参数,和命令行下相同
"-g",
"${fileDirname}/hello.c",
"-o",
"${fileDirname}/hello"
],
//上述内容相当于在命令行下输入了: gcc hello.c -o hello
"options": {
"cwd": "/usr/bin" //编译器的目录
},
"problemMatcher": [
"$gcc" //使用gcc捕捉错误
],
"group": "build",
"detail": "compiler: /usr/bin/gcc" //一些描述性信息
}
]
}
官方文档:https://code.visualstudio.com/docs/editor/tasks
launch.js文件
launch.json 是用于运行 ( run ) 和调试 ( debug ) 的配置文件,可以指定语言环境,指定调试类型等等内容。
打开 VS Code 后,打开需要调试的程序,按F5,按照它的提示就能生成launch.js文件啦。
生成的 launch.json 也放在 .vscode 文件夹中
其中各种变量的内容及涵义如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "运行和调试", //运行和调试任务的名称,可自定义
"type": "cppdbg", //配置类型,默认即可
"request": "launch", //launch模式允许我们打断点进行调试,默认即可
"program": "${workspaceFolder}/build/tests/${fileBasenameNoExtension}", //(常用)程序目录
"args": [], //(常用)程序(main函数)的入口参数
"stopAtEntry": false, //在入口处暂停,选true相当于在入口处增加断点
"cwd": "${workspaceFolder}",//当前的文件目录
"environment": [], //添加到程序的环境变量
"externalConsole": false, //外部控制台,true在调试时会开启系统控制台窗口,false会使用vscode自带的调试控制台
"MIMode": "gdb", //使用gdb进行调试
"setupCommands": [ //用来设置gdb的参数,默认即可
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "环境配置测试", //(常用)运行和调试前要执行的task(编译)任务,任务名要和task.json里的"label"对应
"miDebuggerPath": "/usr/bin/gdb" //debug调试工具的路径,这里使用gdb所在的路径
}
]
官方文档:https://code.visualstudio.com/docs/editor/debugging#_global-launch-configuration
参考
https://www.cnblogs.com/harrypotterisdead/p/14207866.html
https://www.cnblogs.com/sddai/p/9508696.html

浙公网安备 33010602011771号