vscode配置c/c++环境

embedded/2024/9/19 13:14:39/ 标签: c, c++
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="markdown_views prism-atom-one-dark">cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

在 Visual Studio Code (VSCode) 中配置 C/C++ 开发环境需要几个步骤。以下是详细的步骤指南࿰c;包括安装必要的扩展、配置编译器和调试器等。

  1. 安装 VSCode
    首先࿰c;确保你已经安装了 Visual Studio Code。可以从 VSCode 官网 下载并安装。

  2. 安装 C/C++ 扩展
    打开 VSCode࿰c;按下 <code>Ctrl + Shift + Xcode> 打开扩展市场࿰c;搜索并安装以下扩展:

  • C/C++:由 Microsoft 开发࿰c;提供语法高亮、智能感知和调试支持。
  • C/C++ IntelliSense:提供代码补全和错误检查。
  1. 安装编译器
    根据你的操作系统࿰c;安装相应的 C/C++ 编译器。
  • Windows:

    • 可以安装 MinGW-w64 或 TDM-GCC。
    • 安装后࿰c;请确保将 bin 目录(例如 C:\mingw-w64\bin)添加到系统的环境变量 PATH 中。
  • macOS:

    • 可以通过 Homebrew 安装 GCC:
    <code class="prism language-bash">brew class="token function">install gcc
    code>
  • Linux:

    • 使用包管理器安装 GCC:
    <code class="prism language-bash">class="token function">sudo class="token function">apt update
    class="token function">sudo class="token function">apt class="token function">install build-essential
    code>
  1. 配置 VSCode
创建工作区
  • 创建一个新的文件夹作为你的项目文件夹。
  • 在 VSCode 中打开这个文件夹。
创建 C/C++ 文件

在工作区中创建一个新的 C/C++ 源文件࿰c;例如 <code>main.ccode> 或 <code>main.cppcode>。

创建 tasks.json 文件
  1. 按下 <code>Ctrl + Shift + Pcode>࿰c;输入 <code>Tasks: Configure Taskcode>࿰c;然后选择 <code>Create tasks.json file from templatecode>。
  2. 选择 <code>Otherscode> 作为模板。
  3. 在生成的 <code>tasks.jsoncode> 文件中࿰c;配置编译任务。例如࿰c;如果你使用 <code>gcccode> 编译 C 代码࿰c;可以设置如下:
<code class="prism language-json">
class="token punctuation">{class="token string-property property">"version"class="token operator">: class="token string">"2.0.0"class="token punctuation">,class="token string-property property">"tasks"class="token operator">: class="token punctuation">[class="token punctuation">{class="token string-property property">"label"class="token operator">: class="token string">"build"class="token punctuation">,class="token string-property property">"type"class="token operator">: class="token string">"shell"class="token punctuation">,class="token string-property property">"command"class="token operator">: class="token string">"gcc"class="token punctuation">,class="token string-property property">"args"class="token operator">: class="token punctuation">[class="token string">"-g"class="token punctuation">,class="token string">"${file}"class="token punctuation">,class="token string">"-o"class="token punctuation">,class="token string">"${fileDirname}/${fileBasenameNoExtension}.exe"class="token punctuation">]class="token punctuation">,class="token string-property property">"group"class="token operator">: class="token punctuation">{class="token string-property property">"kind"class="token operator">: class="token string">"build"class="token punctuation">,class="token string-property property">"isDefault"class="token operator">: class="token boolean">trueclass="token punctuation">}class="token punctuation">,class="token string-property property">"problemMatcher"class="token operator">: class="token punctuation">[class="token string">"$gcc"class="token punctuation">]class="token punctuation">,class="token string-property property">"detail"class="token operator">: class="token string">"Generated task by Debugger."class="token punctuation">}class="token punctuation">]
class="token punctuation">}
code>

如果你使用的是 C++࿰c;可以替换 gcc 为 g++。

chjson__70">创建 <code>launch.jsoncode> 文件
  1. 按下 <code>Ctrl + Shift + Dcode>࿰c;打开调试面板࿰c;然后点击 <code>create a launch.json filecode>。
  2. 选择 <code>C++ (GDB/LLDB)code>。
  3. 在生成的 <code>launch.jsoncode> 文件中࿰c;配置调试器。例如:
<code class="prism language-json">
class="token punctuation">{class="token string-property property">"version"class="token operator">: class="token string">"0.2.0"class="token punctuation">,class="token string-property property">"configurations"class="token operator">: class="token punctuation">[class="token punctuation">{class="token string-property property">"name"class="token operator">: class="token string">"C/C++: g++ build and debug active file"class="token punctuation">,class="token string-property property">"type"class="token operator">: class="token string">"cppdbg"class="token punctuation">,class="token string-property property">"request"class="token operator">: class="token string">"launch"class="token punctuation">,class="token string-property property">"program"class="token operator">: class="token string">"${fileDirname}/${fileBasenameNoExtension}.exe"class="token punctuation">,class="token string-property property">"args"class="token operator">: class="token punctuation">[class="token punctuation">]class="token punctuation">,class="token string-property property">"stopAtEntry"class="token operator">: class="token boolean">falseclass="token punctuation">,class="token string-property property">"cwd"class="token operator">: class="token string">"${workspaceFolder}"class="token punctuation">,class="token string-property property">"environment"class="token operator">: class="token punctuation">[class="token punctuation">]class="token punctuation">,class="token string-property property">"externalConsole"class="token operator">: class="token boolean">falseclass="token punctuation">,class="token string-property property">"MIMode"class="token operator">: class="token string">"gdb"class="token punctuation">,class="token string-property property">"setupCommands"class="token operator">: class="token punctuation">[class="token punctuation">{class="token string-property property">"description"class="token operator">: class="token string">"Enable pretty-printing for gdb"class="token punctuation">,class="token string-property property">"text"class="token operator">: class="token string">"-enable-pretty-printing"class="token punctuation">,class="token string-property property">"ignoreFailures"class="token operator">: class="token boolean">trueclass="token punctuation">}class="token punctuation">]class="token punctuation">,class="token string-property property">"preLaunchTask"class="token operator">: class="token string">"build"class="token punctuation">,class="token string-property property">"miDebuggerPath"class="token operator">: class="token string">"gdb"class="token punctuation">,class="token string-property property">"setupCommands"class="token operator">: class="token punctuation">[class="token punctuation">{class="token string-property property">"description"class="token operator">: class="token string">"Enable pretty-printing for gdb"class="token punctuation">,class="token string-property property">"text"class="token operator">: class="token string">"-enable-pretty-printing"class="token punctuation">,class="token string-property property">"ignoreFailures"class="token operator">: class="token boolean">trueclass="token punctuation">}class="token punctuation">]class="token punctuation">}class="token punctuation">]
class="token punctuation">}
code>
  1. 编译和调试
  • 编译:按下 <code>Ctrl + Shift + Bcode> 来编译代码。如果配置正确࿰c;将在工作区中生成可执行文件。
  • 调试:按下 <code>F5code> 启动调试器。
  1. 其他设置
    根据需要࿰c;你可以进一步自定义 VSCode 的设置࿰c;例如代码格式化、代码片段等。

总结

以上步骤概述了如何在 VSCode 中配置 C/C++ 开发环境。确保所有路径和配置都正确࿰c;特别是编译器的路径。如果在设置过程中遇到任何问题࿰c;可以查看 VSCode 的官方文档或社区寻求帮助。


http://www.ppmy.cn/embedded/113807.html

相关文章

【重学 MySQL】三十三、流程控制函数

【重学 MySQL】三十三、流程控制函数 IF函数IFNULL函数CASE函数总结 在MySQL中&#xff0c;流程控制函数是用于在SQL查询、存储过程或函数中根据特定条件执行不同流程的重要工具。这些函数可以帮助我们实现复杂的逻辑判断和数据转换。 IF函数 IF函数是MySQL中最基本的流程控制…

django orm查询优化

DJANGO ORM查询优化 Django ORM 提供了一些优化查询的工具&#xff0c;可以减少数据库查询次数和提高查询性能。常见的优化手段包括使用 select_related、prefetch_related、defer 和 only 等。 1. select_related 优化外键查询 select_related 用于一对一和一对多关系的优化…

函数题 6-10 阶乘计算升级版【PAT】

文章目录 题目函数接口定义裁判测试程序样例输入样例输出样例 题解解题思路完整代码AC代码 编程练习题目集目录 题目 要求实现一个打印非负整数阶乘的函数。 函数接口定义 void Print_Factorial ( const int N ); 其中N是用户传入的参数&#xff0c;其值不超过 1000 1000 10…

跨平台集成:在 AI、微服务和 Azure 云之间实现无缝工作流

跨平台集成在现代 IT 架构中的重要性 随着数字化转型的不断加速,对集成各种技术平台的需求也在快速增长。在当今的数字世界中,组织在复杂的环境中执行运营,其中多种技术需要无缝协作。环境的复杂性可能取决于业务的性质和组织提供的服务。具体到 IT 架构,跨平台集成对于使…

C++入门基础知识75(高级)——【关于C++ Web 编程】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C Web 编程的相关内容&#xff01; 关于…

笔记:简介Drawing是什么,都有哪些,如何使用

一、目的&#xff1a;Drawing简介 在 WPF 中&#xff0c;Drawing 是一个抽象基类&#xff0c;用于表示可绘制的对象。Drawing 类及其派生类提供了一种轻量级的方式来描述图形、图像和视频等内容。Drawing 对象通常用于不需要用户交互的静态内容&#xff0c;例如背景图像、图标和…

java生成随机数的四种方法

方法一&#xff1a;Math.random() Math.random() 方法返回的是一个介于 0.0&#xff08;包含&#xff09;和 1.0&#xff08;不包含&#xff09;之间的随机浮点数。 1、生成0.0到1.0之间的浮点数:double f Math.random(); 2、生成0.0到50.0之间的双精度浮点数:double rando…

如何训练机器学习力场

机器学习力场&#xff08;MLFF&#xff09;的训练主要依赖于通过量子力学计算生成的高质量训练数据集&#xff0c;并利用不同的机器学习算法来拟合分子系统中的势能面&#xff08;Potential Energy Surface, PES&#xff09;和原子间作用力。这种训练过程包括数据准备、特征提取…

数据结构:堆的算法

目录 一堆的向上调整算法二堆的向下调整算法三堆的应用:堆排序四TOPK问题 一堆的向上调整算法 我们在堆中插入一个数据一般实在堆的最后插入然后可以一步一步与上层结点&#xff08;父结点进行比较&#xff09;&#xff0c;继而进行交换&#xff0c;完成二叉树的结构&#xff0…

【CS110L】Rust语言 Lecture3-4 笔记

文章目录 第三讲 所有权:移动与借用&例1例2例3 错误处理&#xff08;开头&#xff09;为什么空指针如此危险&#xff0c;我们能做什么以应对&#xff1f;— 引出Optionis_none()函数unwrap_or()函数常见用法 第四讲 代码实践:链表Box节点和链表的定义节点和链表的构造函数判…

SQL Server数据库简单的事务日志备份恢复

模拟数据库备份恢复过程 1.基础操作 1.创建TestDB数据库&#xff0c;并添加数据 USE [master] GO CREATE DATABASE TestDB CONTAINMENT NONE ON PRIMARY ( NAME NTestDB, FILENAME ND:\TestDB.mdf , SIZE 8192KB , MAXSIZE UNLIMITED, FILEGROWTH 65536KB ) LOG ON ( …

项目管理 | 一文读懂什么是敏捷开发管理

在快速变化的商业环境中&#xff0c;项目管理方式也在不断演进&#xff0c;其中敏捷开发管理因其高效、灵活和适应性强的特点&#xff0c;逐渐成为众多企业和团队的首选。本文将详细解析敏捷开发管理的定义、具体内容及其核心角色&#xff0c;帮助读者全面理解这一先进的项目管…

【数据结构】排序算法---快速排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 递归版本代码实现5.1 hoare版本5.2 挖坑法5.3 lomuto前后指针 6. 优化7. 非递归版本代码实现结语 1. 定义 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要 O ( n l o g n ) Ο(nlogn) …

C++——判断year是不是闰年。

没注释的源代码 #include <iostream> using namespace std; void Y(int y); int main() { int year; cout<<"请输入一个年份:"; cin>>year; Y(year); return 0; } void Y(int y) { if(((y%40)&&(y%100!0))||(y%…

人工智能开发实战matplotlib库应用基础

内容导读 matplotlib简介绘制直方图绘制撒点图 一、matplotlib简介 matplotlib是一个Python 2D绘图库&#xff0c;它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。 matplotlib 尝试使容易的事情变得更容易&#xff0c;使困难的事情变得可能。 我们只需几行代码…

前端vue中如何给reactive赋值

const deviceDatareactive({}) const getDeviceDetail (list)>{ if(list.length > 0){ for(let item of list){ if(item.id param.id){ Object.assign(deviceData,item) } } } }

CodeMeter 8.20AxProtector 11.50版本更新

CodeMeter是一款强大的软件保护和许可管理工具&#xff0c;此次8.20版本更新引入了多个重要的新功能和优化&#xff0c;进一步提升了不同平台上的兼容性与使用体验。本次更新扩展了对CmCloudContainer的支持&#xff0c;优化了Python、Rust等语言的加密能力&#xff0c;并修复了…

HarmonyOS开发实战( Beta5.0)自定义装饰器实践规范

介绍 本示例介绍通过自定义装饰器在自定义组件中自动添加inspector (布局回调)方法并进行调用。 效果图预览 不涉及 使用说明 在自定义组件上添加自定义装饰器CallbackObserver&#xff0c;并根据参数设置对应的方法名和需要绑定的组件的ID。编译工程&#xff0c;可以根据…

Linux环境使用Git同步教程

&#x1f4d6; 前言&#xff1a;由于CentOS 7已于2024年06月30日停止维护&#xff0c;为了避免操作系统停止维护带来的影响&#xff0c;我们将把系统更换为Ubuntu并迁移数据&#xff0c;在此之前简要的学习Git的上传下载操作。 目录 &#x1f552; 1. 连接&#x1f558; 1.1 配…

华雁智科前端面试题

1. var 变量的提升 题目&#xff1a; var a 1 function fun() {console.log(b)var b 2 } fun() console.log(a) 正确输出结果&#xff1a;undefined、1答错了&#xff0c;给一个大嘴巴子&#xff0c;错误答案输出结果为&#xff1a;2,1 此题主要考察 var 定义的变量&…