赞
踩
vscode一般有三个配置文件,存放在.vscode文件夹下,分别是launch.json,settings.json和tasks.json
其中tasks.json主管编译过程,launch.json主管运行时环境,包括传入实参、路径等. settings.json是各种插件的配置,以及本地的配置,对应的是(工作区,本地,远端)中的本地,当然本地是具有相对意义的,这里指的啥当前运行环境的配置,级别低于工作区配置.
task.json
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc 生成活动文件", "command": "/usr/bin/gcc", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /usr/bin/gcc" } ] }
上述文件是从vscode->终端->配置默认生成任务 生成的
注意task是任务,launch是启动可执行文件的,但是一开始并没有可执行文件,只有代码,因此需要先运行tasks.json生成可执行文件,task里面的label字段,需要和launch中的preLaunchTask字段一致,这样才能保证找到相应的task.
command字段就是需要在命令行执行的命令,这里使用的是/usr/bin/gcc,算是指明了所用gcc的路径,一般来说,gcc也可不指定,这时用的是bash里面配置的默认gcc.
args就是命令的参数.是一个list,里面的选项都会添加到命令中,注意有一些宏配置,例如${file}指的就是当前文件的名称(包括路径). 如果需要添加编译时指令,就在这里加上.
下面的options选项字段,有一个cwd字段,就是工作路径.
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
上面是默认生成的launch文件,上面是默认生成的,没法直接用,也可以从运行->添加配置里面生成配置文件,生成如下
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg", "request": "launch", "program": "输入程序名称,例如 ${workspaceFolder}/a.out", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ] } ] }
需要注意的是,program字段需要自己修改成相应的可执行文件的路径,这里修改为${fileDirname}/${fileBasenameNoExtension}
,此外还需要添加一个字段,即"preLaunchTask": " ",
这里的字段要和tasks里面的label对得上.
除此之外,注意到还没有添加调试应用,这里也需要添加上,即
"miDebuggerPath": "gdb",
因为已经配置了gdb环境变量,因此可以直接使用,否则要带路径.
启动时参数可以修改args,而environment则是传递给程序的环境变量.
宕开一笔,其实launch和task里面的configuration都是列表,也就是说在单个文件里面可以配置多个编译启动设置.然后这些编译和启动通过"preLaunchTask"
进行匹配.
下面给出一个基本上能用的配置文件
tasks.json
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc 生成活动文件", "command": "/usr/bin/gcc", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": "build", "detail": "编译器: /usr/bin/gcc" } ] }
launch.json
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动,配置1", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "preLaunchTask": "C/C++: gcc 生成活动文件", "externalConsole": false, "miDebuggerPath": "gdb", "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 att", "text": "-gdb-set disassembly-flavor att", "ignoreFailures": true } ] } ] }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。