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或者 ... 
随机推荐
- python tkinter 使用(六)
			python tkinter 使用(六) 本文主要讲述tkinter中进度条的使用. 1:确定的进度条 progressbar = tkinter.ttk.Progressbar(root, mode ... 
- selenium之下拉菜单列表定位
			下拉菜单列表定位>>使用Select类定位 from selenium.webdriver.support.ui import Select #导入Select类 select=Selec ... 
- pycharm配置git关联Gitee远程仓库
			File-->Settins-->Version Control-->Git,点Test自动识别本地git安装路径 安装Gitee插件,重启pycharm 在Git下关联远程仓库链接 ... 
- C语言之检验三边能否构成三角形
			要求: 编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边. 输出格式:若结果可以构成,输出YES,否则输出ERROR DATA 其实很简单,运用与逻辑运算符&&判断 ... 
- DVWA Cross Site Scripting (XSS) 跨站脚本攻击
			文章目录 DVWA_XSS(Stored) 存储性XSS 1.Low 2.Medium 3.High 4.Impossible XSS平台 DVWA_XSS(Stored) 存储性XSS 一句话概括: ... 
- zabbix+oracle环境部署
			oracle11安装完成后, 实例名: zbx01 oracle创建zbx01用户:col file_name for a60;set linesize 160;select file_name,ta ... 
- k8s集群Node节点管理:节点信息查看及节点label标签管理
			k8s集群Node节点管理:节点信息查看及节点label标签管理 Kubernetes集群Node管理 一.查看集群信息 [root@k8s-master1 ~]# kubectl cluster-i ... 
- GetX GetUtils
			GetUtils 是 getx 为我们提供一些常用的工具类库,包括值是否为空.是否是数字.是否是视频.图 片.音频.PPT.Word.APK.邮箱.手机号码.日期.MD5.SHA1等等. class ... 
- Java 编辑PPT SmartArt图形
			本文介绍在Java程序中如何来编辑PPT幻灯片中已有的SmartArt图形,包括重置图形样式.颜色.添加/删除图形节点.编辑节点内容.添加超链接到节点(链接到网页.链接到指定幻灯片)等.在PPT中创建 ... 
- 详解物联网Modbus通讯协议
			摘要:Modbus是当前非常流行的一种通讯协议. 本文分享自华为云社区<一文搞懂物联网Modbus通讯协议丨[拜托了,物联网!]>,作者: jackwangcumt. 1 概述 随着IT技 ... 
