vsVode C++开发远程虚拟机工程配置

在使用VS Code进行C/C++的开发过程中,有三个至关重要的配置文件,分别是 tasks.json, launch.json  c_cpp_properties.json

1. tasks.json

tasks.json 是在 vscode 中辅助程序编译的模块,可以代你执行类似于在命令行输入 gcc hello.c -o hello” 命令的操作,你只要在图形界面下操作即可生成可执行文件。

当你在项目文件夹下打开 vscode 后:

1) 选择“终端”;  2) 选择“配置任务”;  3) 选择你想使用的编译器(这里本人选择 gcc);

即可生成默认的 tasks.json 文件。

可以看到在文件夹下生成了名为 .vscode 的文件,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"      //一些描述性信息

        }

    ]

}

复制代码

 也可以参考 Integrate with External Tools via Tasks 官方文档 文档进一步了解

2. launch.json

launch.json 是用于运行 ( run ) 和调试 ( debug ) 的配置文件,可以指定语言环境,指定调试类型等等内容。

打开 VS Code 后,按照下图所示的提示,从左向右依次点击(也可以在上方菜单栏依次选择 :1) “运行”;2) “打开配置”;3) 选择 " C++ (GDB/LLDB) " 即可生成 launch.json),创建 launch.json 文件

生成的 launch.json 也放在 .vscode 文件夹中

⭐其中各种变量的内容及涵义如下:

复制代码

{

    "version": "0.2.0",

    "configurations": [

        {

            "name": "运行和调试",         //运行和调试任务的名称,可自定义

            "type": "cppdbg",            //配置类型,默认即可

            "request": "launch",         //launch模式允许我们打断点进行调试,默认即可

            "program": "${fileDirname}/hello", //(常用)程序目录,这里相当于在命令行执行"hello"

            "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所在的路径

        }

    ]

}

复制代码

也可以参考 Configuring C/C++ debugging官方文档  Debugging in VS Code官方文档 进行设置

3. c_cpp_properties.json

c_cpp_properties.json 主要用来设置包含头文件的路径,设置 C/C++ 支持的版本号等等。

1) 点击 Ctrl + Shift +P  弹出命令搜索框;2) 选择  C/C++: 编辑配置 (UI)  即可生成 c_cpp_properties.json 文件,此文件同样包含在.vscode文件夹中。

⭐其中主要的变量名称和涵义如下:

复制代码

复制代码

{"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
}

复制代码

复制代码

也可参考 c_cpp_properties.json 官方文档 设置更多内容。

在上述三个配置文件中,我们会看到类似于  ${workspaceFolder}  等等类似的描述,这些描述是 VS Code 预定义变量名,可以用来代指工作目录的路径,环境变量的名称,生成文件的名称等等。使用这些预定义的变量名可以使得我们的开发过程更加高效,同时可移植性也大大增强。更多内容可以参照官方文档 Variables Reference

⭐一般我们比较常见的变量名有:

${workspaceFolder} - VS Code当前打开工作区文件夹的路径
${file} - 当前打开文件的绝对路径
${fileBasename} - 当前打开文件的名称
${fileBasenameNoExtension} - 当前打开文件的名称,但是不加后缀名
${fileDirname} - 文件所在的文件夹路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决webpack打包生成gz格式css/js文件没法在nginx使用的问题--全网唯一正确

本文绝对是全网解决这个问题唯一正确的文章,没有之一! 很多人都说开启nginx gzip压缩,这些人完全是胡说八道!你们到底懂不懂叫gzip压缩啊?! 不信你就试试,如果css/js只有gz文件,ng…

排序分析(Ordination analysis)及R实现

在生态学、统计学和生物学等领域,排序分析是一种用于探索和展示数据结构的多元统计技术。这种分析方法通过将多维数据集中的样本或变量映射到低维空间,以便更容易理解和可视化数据之间的关系。排序分析常用于研究物种组成、生态系统结构等生态学和生物学…

中伟视界:AI盒子中的报警预录像功能能解决什么问题?实现原理是怎样的?

现代社会智能安防已成为各行各业的重要一环,而AI盒子中的报警预录像功能更是智能安防的一大利器。这一功能能够解决很多安防方面的难题,其实现原理更是技术创新的体现。 首先,让我们来看看AI盒子中的报警预录像功能能解决哪些问题。在传统的安…

Prosys OPC Client连接OPC DA

Prosys OPC Client连接OPC DA Prosys OPC 客户端将帮助排除 OPC 连接故障并测试 OPC 服务器。 您可以读写数据、浏览服务器以及导出和导入地址空间。 OPC 客户端轻巧、快速且易于使用。 支持 OPC DA 1.0a 和 OPC DA 2.05a 官方地址: https://www.prosysopc.com/products/opc-…

《开箱元宇宙》:Madballs 解锁炫酷新境界,人物化身系列大卖

你是否曾想过,元宇宙是如何融入世界上最具代表性的品牌和名人的战略中的?在本期的《开箱元宇宙》 系列中,我们与 Madballs 的战略顾问 Derek Roberto 一起聊聊 Madballs 如何在 90 分钟内售罄 2,000 个人物化身系列,以及是什么原…

4.7-容器网络之host和none

这一节我们来看一下docker中的另外两种网络,host和none。 docker network inspect none 于是就看到Containers, 里面包含了一个test1 表示这个容器连接到了none。

陈嘉庚慈善践行与卓顺发的大爱传承

陈嘉庚慈善践行,了解陈嘉庚后人与卓顺发的大爱传承。 2023年11月25日,卓顺发太平绅士以及陈家后人在分享他们对慈善领域见解的过程中,特别强调了慈善在促进社会和谐以及推动社会进步方面的关键作用。同时,他们深入探讨了如何在当今社会中继续传扬和实践家国情怀以及…

清理docker Build Cache缓存文件

使用docker构建镜像,发现docker的overlay2文件会越来越大。 使用命令查看docker系统占用资源: docker system df 可以看到已经占用了26.7GB,清理这个缓存 docker builder prune 再次查看,已经没有缓存了,清理成功。 …

Linux基础操作二:Linux系统介绍

1、系统启动过程 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 1.1、内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中…

固态继电器的分类:揭秘热门趋势

固态继电器(SSR)已成为现代电子和自动化系统不可或缺的一部分,与传统电磁继电器相比具有众多优势。随着技术的进步,SSR的分类不断发展,催生了令人兴奋的趋势和创新。在本文中,我们将探讨SSR分类的最新趋势,阐明该领域的…

10.索引

一.索引简介 索引用于快速找出在某个列中有一特定值的行。 不使用索引,MySQL必须从第1条记录开始读完整个表,直到找出相关的行。表越大,查询数据所花费的时间越多。 如果表中查询的列有一个索引,MySQL能快速到达某个位置去搜寻…

计算机毕业设计 基于Web的课程设计选题管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

css 字体倾斜

css 字体倾斜 //左右倾斜 transform: skew(40deg, 0deg);//上下倾斜 transform: skew(0deg, 16deg);

【代码】考虑区域多能源系统集群协同优化的联合需求侧响应模型(完美复现)

程序名称:考虑区域多能源系统集群协同优化的联合需求侧响应模型 实现平台:matlab-yalmip-cplex/gurobi 代码简介:风电、光伏发电等波动电源接入比例不断提高,使得区域多能源系统中能量转化和协调能力减弱。基于此,该…

面试:SpringMVC问题

文章目录 SpringMVC运行流程MVC的概念与请求在MVC中的执行路径,ResponsBody注解的用途SpringMVC启动流程SpringMVC的拦截器和过滤器有什么区别?执行顺序?Spring和SpringMVC为什么需要父子容器? SpringMVC运行流程 • 客户端&#…

Docker Swarm总结+Jenkins安装配置与集成snarqube和目标服务器(4/5)

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码下载地址🍅 👇🏻 精彩专栏推荐订阅👇🏻…

海外热门:香港服务器和美国服务器的成本较量

​  提到 2023 年海外热门服务器,在整个 IDC 站长圈中,要数香港服务器和美国服务器的关注度一直居高不下。其实也正常,毕竟这两种海外服务器相较成熟。不过,在实际使用中,两者也会被拿来对比,最显而易见的…

Python多线程优化:提升程序性能的实例

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python多线程优化:提升程序性能的实例,全文5600字,阅读大约16钟。 多线程是一种有效的并发编程方式,能够提高程序的性能。本文…

(六)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB代码)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…

c++——取地址(引用)和取内容(解引用)操作

今天又做蒙了一道题,把思考和实验记录下来。 struct sk{ int a; float b;}data; int *p; 若要使p指向data中的a域,正确的赋值语句是 p&a; pdata.a; p&data.a; *pdata.a前两个可以很容易看出错误之处,a是结构体内的变量,需…