vscode配置C/C++编译环境

2023-05-16

这边记录一下配置vscodeC/C++编译环境的过程,以便以后要配置的时候可以直接参考。

插件安装参考博文:VSCode配置C/C++环境和Windows下VSCode配置C++环境


2. 概述

我们知道vscode只是一个编辑器,要编译C/C++,我们需要安装编译器。一般我们安装的是MinGW,假设这里我的MinGW安装路径是D:\MinGW

回想我们之前用命令行或者IED编译项目,我们一般需要明确编译器的路径(包括了标准库的头文件和静态库),项目的编译规则,配置调试。

而上面这三部分就和vscode编译C/C++项目中的三个重要配置文件对应起来了。

现在我们就开始讲怎么将这三个文件调出来,以及文件的各行含义,以及如何设置这些文件中的参数。


2. 配置编译器设置(c_cpp_properties.json文件)

首先新建一个文件夹,打开,新建一个main.c的代码文件。

image-20210703120721055

之前我们演示过在vscode的终端上用gcc和makefile进行编译,现在我们不使用这种方法,我们使用vscode配置文件的方法来编译。

按Ctrl+Shift+P或者点击查看-命令面板,调出命令面板

image-20210703121405608

输入C/C++,选择C/C++:编辑配置(JSON)或者C/C++:编辑配置(UI),实测两个默认产生的文件是一样的,但是推荐选择C/C++:编辑配置(UI),选择C/C++:编辑配置(UI)会出现一个配置页面,比较方便,而选择编辑配置(JSON)只会产生一个配置文件。

在这里插入图片描述
选择C/C++:编辑配置(JSON),出现的页面

image-20210703121942423

选择C/C++:编辑配置(UI),出现的页面,可以看到,除了有c_cpp_properties.json文件,还跳出了一个配置界面,我们在这个界面的修改会被同步到c_cpp_properties.json文件中。

image-20210703122152077

这这里,我们需要配置 编译器路径,本项目所用头文件(不包括编译器自带的标准头文件)等信息。

这是我的c_cpp_properties.json文件

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "D:/MinGW/bin/gcc.exe",
            "cStandard": "c99",
            "cppStandard": "c++03",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

3. 配置编译规则(task.json文件)

设置好了编译器及头文件路径之后,我们现在要配置我们的编译项目的方法了。

之前源文件很少的时候,我们在命令行中用gcc都是直接编译的,文件一多之后,我们都是通过makefile来管理我们的编译规则。

在vscode中也是一样,我们需要配置我们要怎样编译我们项目。继续按Ctrl+Shift+P或者点击查看-命令面板,调出命令面板,输入task,选择任务:配置默认生成任务

image-20210703123757908

再选择C/C++:gcc.exe生成活动文件,就会出现tasks.json文件

image-20210703123903034

这是我的task.json文件

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: gcc.exe 生成活动文件",//任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置
			"command": "D:/MinGW/bin/gcc.exe",
			"args": [//编译时候的参数
				"-g",//添加gdb调试选项
				"${file}",
				"-o",//指定生成可执行文件的名称
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "D:/MinGW/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true//表示快捷键Ctrl+Shift+B可以运行该任务
			},
			"detail": "编译器: D:/MinGW/bin/gcc.exe"
		}
	]
}
部分变量说明:

command 设置指定要运行的程序;在这种情况下是 g++或者gcc;
args 数组指定将传递给 g++ 的命令行参数。必须按照编译器期望的顺序指定这些参数。
此任务告诉 g++ 获取活动文件(${file}),对其进行编译,并在当前目录(${fileDirname})中
创建一个与活动文件同名但以 .exe 为扩展名(${fileBasenameNoExtension}.exe)的可执行文件,
如 helloworld.exe 。可使用"${workspaceFolder}\\*.cpp"来替换 ${file},这将生成当前文件夹中的所有 .cpp 文件;
label 是在任务列表中显示的值,可以随意命名
group 中 "isDefault": true 指定当按 Ctrl + Shift + B 时将运行此任务。此属性仅出于方便起见;如果设置为 false,仍然可以使用“ 任务:运行构建任务”从“终端”菜单中运行
gourp 中的 "isDefault": true,指定当按下 Ctrl + Shift + B 时将运行此任务。此属性仅出于方便起见;如果将其设置为 false,仍可以使用“ 运行生成任务”从“终端”菜单中运行

4. 配置调试(launch.json文件)

最后我们需要设置调试配置信息。

点击运行-启动调试

image-20210703132644986
会生成launch.json文件,如下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",
            "program": "${workspaceFolder}/main.exe",//调试程序的路径名称
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "D:/MinGW/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

现在我们就将所有的配置完成了,下面我们就可以进行调试和编译了。

调试点运行-启动调试

编译点终端-运行生成任务

这样vscode上的C/C++环境配置就完成了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vscode配置C/C++编译环境 的相关文章

随机推荐

  • 迭代牛顿-欧拉法——机器人动力学逆解

    迭代牛顿 欧拉法 牛顿欧拉法的步骤向外回归 xff08 outward recursion xff09 step 1step 2 向内回归 xff08 inward recursion xff09 step 3step 4 牛顿欧拉法的三种
  • ros自定义全局路径规划器并内置到ros工作空间

    ros自定义全局路径规划器并内置到ros工作空间 1 定义头文件2 类实现3 写好自己的cMakelist txt文件4 为我们的规划器写一个描述文件5 修改package xml文件6 运行catkin make进行编译 xff0c 如果
  • 从RRT到RRT*,再到Informed RRT*,路径规划算法怎么写

    从RRT到RRT xff0c 再到Informed RRT xff0c 路径规划算法怎么写 1 RRT算法1 1 假设1 2 RRT算法步骤与实现1 3 伪代码 2 RRT 算法3 Informed RRT 算法 做个正直的人 RRT中文名
  • VFH避障/局部路径规划算法

    VFH避障 局部路径规划算法 1 信度栅格 xff08 Certainty Grid xff09 2 势场法 xff08 Potential Field Methods xff09 3 VFH算法的前身 VFF xff08 Virtual
  • VFH+避障/局部路径规划算法

    VFH 43 避障 局部路径规划算法 1 第一部分 xff1a 映射到极坐标系VFH 43 对VFH的改进 考虑机器人的宽度 amp 对障碍物进行膨胀 2 第二部分 xff1a 二值化极坐标直方图VFH 43 算法对此提出了一种解决办法 二
  • 给树莓派刷入OpenWrt

    下载OpenWrt固件 进入OpenWrt官网 xff0c 进入固件列表 在选择框输入raspberry搜索树莓派的固件资源 xff0c 选择对应树莓派型号的下载链接 以3B 43 为例 xff0c 注意不支持一栏的提示 xff0c 可能产
  • VFH*避障/局部路径规划算法

    VFH 避障 局部路径规划算法 1 VFH 43 存在的问题 dead end2 VFH 算法2 1 VFH 算法概述2 1 1 VFH 的参数2 2 2 表示2 2 3 算法步骤 2 2 投影位置和方向2 3 代价函数2 3 1 k e
  • 新建ROS订阅者、发布者节点方法

    文章目录 1 新建一个该项目的工作空间 xff0c 并在其中创建一个文件夹src2 进入src文件夹 xff0c 并在其中创建一个package xff0c 运行如下命令即可3 返回上一层 xff0c 编译 xff0c 并source4 编
  • 基于光线跟踪的路径规划算法

    基于光线跟踪的路径规划算法 光线跟踪算法是我在 中国控制会议2022 上提出的一种全新的路径规划算法 这里附上论文链接 不自夸 xff0c 感兴趣的欢迎去阅读 xff0c 实现非常简单
  • ubuntu 20.04 配置cartographer 库

    ubuntu 20 04 配置cartographer 库 不要让别人占据你的大脑 一 安装Ceres 库1 安装依赖项2 下载源码3 编译源码4 安装 二 安装cartographer1 安装工具 xff1a wstool rosdep
  • 终于把前后端sm加解密以及加签验证调通了。

    终于把前后端sm加解密以及加签验证调通了 xff01 领导要求我对项目的数据传输安全考虑下 xff0c 因此就想到了对敏感字段做加密和对请求 响应做数字签名验证 网上看了很多文章 xff0c 可能是因为我对加密这块不了解 xff0c 感觉都
  • 【LeetCode】最接近原点的K个点 (优先队列PriorityQueue,快速排序的根据基准数分区思想(双指针法分区))

    LeetCode 最接近原点的K个点 xff08 优先队列PriorityQueue xff0c 快速排序根据基准数分区思想 双指针法分区 xff09 题目 xff1a 我们有一个由平面上的点组成的列表 points 需要从中找出 K 个距
  • 萌新解析正点原子悟空大四轴无人机ATKflight固件(持续更新中~)

    本博客用来记录学习ATKflight固件的学习过程 xff0c 本人萌新 xff0c 大佬们可以参考参考 本文默认已经了解FreeRTOS操作系统并且会简单的使用方法 xff0c 如果读者没了解过 xff0c 建议先看正点原子的FreeRT
  • FOC观测器之龙伯格观测器

    状态观测器 xff1a 根据控制理论 xff0c 如果一个系统能够完全通过其检测到的输出值来重构其系统状态 xff0c 则认为该系统是可观测的 其作用于无传感器转子的位置和速度的检测反馈 xff0c 再作用到PARK逆变换和转矩磁链控制上
  • VxWorks实时性能探究

    VxWorks实时性能探究 笔者最近在使用VxWorks操作系统 xff0c 由大名鼎鼎的风河 xff08 WindRiver xff09 开发 VxWorks操作系统是一款硬实时操作系统 xff0c 一直听闻其实时性能非常优秀 xff0c
  • VxWorks中的任务和进程线程的关系

    学过操作系统的 xff0c 对进程和线程应该是比较了解的 但是为了文章知识的完整性 xff0c 笔者先对操作系统中的进程和线程进行一些介绍 1 进程和线程的关系 为了不产生歧义 xff0c 先对一些易混淆的概念进行介绍 xff1a 代码 x
  • 优启通系统U盘制作及Win10系统安装

    前言 自己手动安装操作系统的方法总结 准备工作 一 xff1a Win10系统下载 MSDN 二 xff1a 利用PanDownload下载工具快速下载系统文件到本地 1 PanDownload下载安装 2 使用Pandownload新建离
  • FreeRTOS学习教程整理

    这篇博客主要用来整理一下FreeRTOS的主要学习资料 xff0c 方便以后学习查阅 首先当然是官网了 xff1a FreeRTOS 官网上有很多系统的资料 xff0c 还可以下载源码 不习惯英文的可以看这个中文教程 xff1a 中文教程环
  • Linux新手必须知道的配置知识(apt、pip、环境变量设置、更换安装源和pip镜像源)

    对于刚接触Linux的同学来说 xff0c 如果能过先对这些知识很熟悉的话 xff0c 那么对于在Linux上的环境配置你就会很熟悉了 一 apt 命令 apt 命令是一个功能强大的Linux命令行工具 xff0c 它不仅可以更新软件包列表
  • vscode配置C/C++编译环境

    这边记录一下配置vscodeC C 43 43 编译环境的过程 xff0c 以便以后要配置的时候可以直接参考 插件安装参考博文 xff1a VSCode配置C C 43 43 环境和Windows下VSCode配置C 43 43 环境 2