vscode的配置文件
vscode的配置文件
总述:vscode中一般会在项目文件夹下自动生成.vscode文件夹,其中存放若干配置文件(.json),一般有如下文件:

下面将解释每个文件的用途与表现。
1. c_cpp_propertries.json
这个文件是使用vscode进行C++开发时会产生的文件,非C++用户可以直接跳过。其内容大致如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/python3.8",
"/data/anaconda_new/envs/cugr/lib/python3.8/site-packages/torch/include",
"/data/anaconda_new/envs/cugr/lib/python3.8/site-packages/torch/include/torch/csrc/api/include",
"/home/ustc/globalRouting/routing2/Xplace-main/cpp_to_py",
"${workspaceFolder}/cpp_to_py"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"intelliSenseMode": "linux-clang-x64"
}
],
"version": 4
}
可以看出,这个文件通常指定CPP项目本身的一些属性,比如使用什么C++标准进行预编译(cStandard),includePath路径是什么(#include的搜索位置),当然这些配置只是为了在编辑器中正常显示,不报错之类的。如果我们不使用vscode本身的编译环境编译,比如使用cmake或者自定义C++命令编译,那么就可以不配置这些东西,只是可能会在编辑器界面上显示一堆的红色黄色波浪线。
2. launch.json
这个文件是用于启动程序(run/debug)时会查看的配置文件,比如启动程序时传递参数(当然如果直接命令行传递就没必要写)。示例内容如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "route",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/route",
"args": [
"-cap",
"data/ISPD/ariane133_68.cap",
"-net",
"data/ISPD/ariane133_68.net",
"-out",
"test.output"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": ""
// "postDebugTask": "install"
}
]
}
在这个示例文件中,比较重要的是name,type,program,args,preLaunchTask等,name用于指定这个launch的名字,这会在vscode的运行调试界面的下拉框中显示,比如这里命名为route,我的vscode中就有显示如下:
program是指定运行的程序名,preLaunchTask是运行前提前执行的命令,这里为空,表示不执行任何命令,或者也可以设置为"build",表示运行前先进行重新编译。如果你的项目文件非常大,那么每次调试都要花费漫长的时间进行重新编译,这显然是很浪费时间的,所以可以将此字段设置为空(即使使用的是cmake tools,在这里也可以设置,因为cmake tools也会来匹配相应的配置,后续详细说明)。
3. tasks.json
这个配置文件中定义了自定义的一些任务,但应该会有C++编译器自动生成的任务如下,即调用g++进行编译:
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
当然我们也可以额外进行定义一些自己的任务,比如每次cmake之后我都需要执行make install任务,我可以将这个任务写在tasks.json中,全部文件内容如下:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
},
{
"type": "shell",
"label": "install",
"command": "make install",
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}
这样里面就有两个任务,名字(label)分别为:
C/C++: g++ build active file
install
按Ctrl+shift+P,输入Tasks:Run Task,会显示出这两个任务:

点击install就会执行这个make install任务了,不用再另外打开终端输入命令了(尤其命令行很长的话)。
当然这个也可以和前面的launch.json相互配合使用,比如我可以指定"postDebugTask": "install"(倒数第四行),这样就会在执行完程序后自动执行make install命令(只是举例,比如你可以写一个命令将程序执行输出的文件挪到固定的一个位置)。
4. setting.json
这个文件通常是用于描述一些插件的设置,或者编辑器本身的设置。只适用于这个项目喔~
{
"cmake.debugConfig": {
"args": [
"-cap",
"data/ISPD/ariane133_68.cap",
"-net",
"data/ISPD/ariane133_68.net",
"-out",
"test.output"
]
}
}
比如在这个文件中,我仅设置了cmake tools的传递参数配置。在这里读者可能发现我在launch.json中也配置了cmake的执行传递参数。cmake会先去匹配launch.json中是否有对应的配置(查看program是否与当前执行的文件匹配),如果有则使用此配置,如果没有则搜索setting.json的"cmake.debugConfig"字段匹配。
总结:
这些是我尝试在vscode中使用cmake进行简单化的调试大项目总结的一些关于配置文件的东西,之前没有关注过这些,希望总结出来也能方便大家的使用!感谢阅读~
vscode的配置文件的更多相关文章
- 【转载】Windows下VSCode编译调试c/c++
懒得自己配置或自己配置出现不明问题的朋友可以点这里: [VSCode]Windows下VSCode便携式c/c++环境 http://blog.csdn.net/c_duoduo/article/de ...
- 【笔记】【VSCode】Windows下VSCode编译调试c/c++
转载自http://m.2cto.com/kf/201606/516207.html 首先看效果 设置断点,变量监视,调用堆栈的查看: 条件断点的使用: 下面是配置过程: 总体流程: 下载安装vsco ...
- 使用VSCode和VS2017编译调试STM32程序
近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...
- VSCode代码修改后跑起来没反应,打开本地文件,代码没变化
两种解决办法: 首先:修改VSCode默认配置文件,点击左下角设置标志图 -> 设置,出来了设置相关的东西,搜索 files.autoSave 第一种:把"files.autoSave ...
- 【VSCode】Windows下VSCode编译调试c/c++【更新】
便携版已更新,点此获取便携版 用于cpptools插件的配置文件更新 更新的launch.json // Available variables which can be used inside of ...
- windows下vscode修复c++找不到头文件
因为原博客太长将部分内容分开 vscode找不到头文件的问题是由于windows下vscode默认的编译器是微软的MSVC(vs使用的编译器)的头文件路径 如果你没有安装vs肯定会因为找不到头文件而报 ...
- 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】
--------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...
- VScode中的golang代码规范太严格,怎么处理。
在vscode的配置文件settings.json中,加入下面的配置,一般设置为0.8即可. "go.lintFlags": [ "-min_confidence=.8& ...
- VsCode 格式化插件配置
Beautify 1.在工作目录下建立.jsbeautifyrc文件: { "brace_style": "none,preserve-inline", &qu ...
- 把VSCode配置成C/C++开发IDE
工作一年多了,大学学的数据结构和算法都忘得差不多了.于是想补补数据结构知识,并且刷一下剑指offer的一些面试题.首要问题就是装个C语言的运行环境,大学学C语言和C++的时候都是用的VC++6.0或者 ...
随机推荐
- navicat连接服务器mysql
navicat连接服务器mysql 第一步:配置防火墙 连接服务器的mysql数据库,我们首先需要在服务器上放行3306端口(MySQL服务对应的端口),进入服务器管理页面防火墙,点击添加规则,放行3 ...
- 关于腾讯地图geolocation.getLocation 经常定位失败,定位时间过长的解决方法
今天遇到个项目,腾讯地图定位出现问题,导致地图无法呈现出最近的目标 这是正常的效果,之前一直出现贵州等地点的信息,查看控制台的网络后,发现腾讯的定位失败,要么就是定位时间过长,要20S左右,但是换ED ...
- pacman下载时经常出现Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
问题 我在manjaro系统上使用pacman下载软件的时候,经常出现以下报错: 错误:无法从 mirrors.tuna.tsinghua.edu.cn : Operation too slow. L ...
- BlockCanary原理解析
一.背景 为了解决应卡顿,分析耗时. 二.原理 Looper中的loop方法: public static void loop() { ... for (;;) { ... // This must ...
- 详解GaussDB(DWS)的CPU资源隔离管控能力
摘要:GaussDB使用cgroup实现了两种cpu管控能力,基于cpu.shares的共享配额管控和基于cpuset的专属限额管控. 本文分享自华为云社区<GaussDB(DWS)的CPU资源 ...
- SBOM落地的关键一步——漏洞可利用性交流(VEX)
SolarWinds 网络安全事件的影响,加上 Log4j 漏洞对众多知名企业产生难以估量的后果,使软件供应链安全成为安全领域的热门话题,并且SBOM现在成为网络安全漏洞计划的一个重要组成部分. SB ...
- VA41 销售合同创建BAPI
一.事务代码VA41 合同创建的过程和销售订单几乎一致 二.调用BAPI 调用BAPI为BAPI_CONTRACT_CREATEFROMDATA 传参和销售订单BAPI:BAPI_SALESORDER ...
- 0x01 基本算法-位运算
A题:a^b https://ac.nowcoder.com/acm/contest/996/A 题目描述 求 a 的 b 次方对 p 取模的值,其中 0 <= a,b,p <= 10^9 ...
- Codeforces Round #697 (Div. 3) A - G个人题解记录
Codeforces Round #697 (Div. 3) 1475A. Odd Divisor 问一个数是否有奇除数. 对 2 不断除,如果最后 n == 1即不可能存在,否在存在. int ma ...
- vivo 微服务 API 网关架构实践
一.背景介绍 网关作为微服务生态中的重要一环,由于历史原因,中间件团队没有统一的微服务API网关,为此准备技术预研打造一个功能齐全.可用性高的业务网关. 二.技术选型 常见的开源网关按照语言分类有如下 ...