Ubantu 安装vscode配置c/c++环境

文章目录

  • 安装VSCode
      • 注意 snap包冲突
  • 安装C/C++编译环境
      • 注意 进程锁占用
  • 配置C++开发环境
    • 安装插件
    • 配置tasks.json
    • 配置c_cpp_properties.json
  • 配置调试环境
    • 配置 launch.json

安装VSCode

方式一:ubantu 软件里面直接安装
方式二:官网下载deb安装包https://code.visualstudio.com/

注意 snap包冲突

我在安装时,先从官网上下载了deb但是下到一半时中止了,然后在系统软件里面再安装Code时,报错:

code:status-code=409 kind=snap-change-conflict message=snap"code" has “install-snap”" change in progress

这个错误通常表示在你尝试安装 code 软件时,由于系统中已经有一个正在安装或正在更新的 snap 包而导致冲突。
我的解决方式是:
sudo snap changes
看系统中正在进行的 snap 操作。找到与 code 包相关的操作记录(通常以 install 或 refresh 开头),然后使用以下命令中止它:
sudo snap abort [change-id]
将 [change-id] 替换为你要中止的操作的ID。

如果你之前曾尝试安装 code 软件但未成功,则可能需要删除旧的安装包。
sudo snap list
列出当前安装的所有 snap 包。找到与 code 软件相关的包并使用以下命令删除它:
sudo snap remove [package-name]
将 [package-name] 替换为你要删除的包的名称。

在这里插入图片描述在这里插入图片描述

然后就能够重新安装 code 软件了。
在这里插入图片描述

安装C/C++编译环境

  1. 更新软件源: sudo apt-get update
  2. 安装 gcc 工具链: sudo apt-get install build-essential gdb
  3. 确认 gcc 安装成功: gcc -v

注意 进程锁占用

下载时,经常会有apt-get安装资源锁报错:
在这里插入图片描述解决方案有两种:
一种是删除对应的进程
一种是删除对应的锁文件

我懒得去查进程了,直接删除的锁文件:
在这里插入图片描述

配置C++开发环境

安装插件

  1. 打开VSCode。
  2. 按下快捷键 或点击侧边栏的 “Extensions” 搜索插件。
  3. 搜索并安装 C/C++ 相关插件。
    在这里插入图片描述4. 打开一个文件夹,创建测试文件helloworld.c
    在这里插入图片描述
#include <stdio.h>int main(){printf("hello world");int a = 2;printf("%d",a);return 0;
}

配置tasks.json

  1. 配置.vscode下的tasks.json
    tasks.json 文件配置: tasks.json 用于告诉 VSCode 应该怎么编译源文件。
    可以从模版生成 tasks.json 文件,可以直接手动添加。
    在菜单栏点击配置任务,如图所示:
    在这里插入图片描述
    在弹出框中依次选择 “Create tasks.json file from template” - “others”。此时项目目录的 .vscode 目录下会出现 tasks.json 文件。
{"tasks": [{"type": "cppbuild","label": "C/C++: gcc 生成活动文件","command": "/usr/bin/g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}

配置好 task.json 之后,就可以在 VSCode 的菜单栏一键进行项目构建工作(也可以使用快捷键 Ctrl-Shift-b )。
在这里插入图片描述
即生成了可执行文件

配置c_cpp_properties.json

  1. c_cpp_properties.json 文件配置:
    c_cpp_properties.json文件用于配置 C/C++ 相关信息,可以告诉VSCode 使用的编译器、查找 include 文件的路径以及 C 文件和 CPP 文件的解析标准等,帮助 VSCode 的自动代码分析工具 IntelliSense 进行语法检查。
    在 VSCode 中,在某个打开的 C++ 文件下,按下 Ctrl+Shift+P 键,选择 C/C++: Edit
    Configurations (JSON) 即可在 .vscode 下创建 c_cpp_properties.json 。
{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "c11","cppStandard": "gnu++14","intelliSenseMode": "linux-gcc-x64"}],"version": 4
}

配置调试环境

配置 launch.json

.vscode 目录下的 launch.json 文件,用于配置 VSCode 的调试器。
在调试选项下,生成 launch.json 模版(也可以直接创建该文件)。
在这里插入图片描述
生成 launch.json 文件,在其右下角会有 Add Configurations 按钮。选择 C/C++: (gdb)
Launch 或 C/C++: (gdb) Attach (launch模式由 VSCode 来启动一个独立的具有 debug 模式的
程序;attach 模式附加于一个已经启动的程序)。
在这里插入图片描述

{"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "C/C++: gcc 生成活动文件","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},],"miDebuggerPath":  "/usr/bin/gdb"}]
}

然后添加断点,就可以调试文件了。
在这里插入图片描述

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

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

相关文章

新增PostgreSQL数据库管理功能,1Panel开源面板v1.9.3发布

2024年1月15日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.3版本。 在这一版本中&#xff0c;1Panel新增了PostgreSQL数据库管理功能&#xff0c;并且支持设置PHP运行环境扩展模版。此外&#xff0c;我们进行了30多项功能更新和问题修复。1Panel应用…

Android性能优化 | DEX 布局优化和启动配置文件

Android性能优化 | DEX 布局优化和启动配置文件 引言 使用DEX布局优化和启动配置文件是优化Android应用性能的有效途径。DEX布局优化可以通过优化应用程序中的DEX文件布局&#xff0c;从而加快Android应用的启动速度和执行速度。启动配置文件则提供了一种灵活的方式来控制应用…

股票涨跌原理

相信很多人都知道&#xff0c;在每一个价位上成交的多头订单和空头订单的数量都是相等的&#xff0c;那为什么会上涨和下跌&#xff0c;背后的原理是什么&#xff1f; 举个生活中的例子&#xff1a; 其实在交易市场上的成交与我们日常生活中的买卖商品成交是类似的&#xff0…

【杂谈】如何测试EEPROM可以保存数据100年以及擦写次数,磨损均衡问题,阿伦尼乌斯方程的老化测试法

【引出问题】 引用帖子&#xff1a;How Do You Test If An EEPROM Can Hold Data For 100 Years? | Hackaday 在hackaday上看到一篇有意思的帖子&#xff0c;如何测试 EEPROM 是否可以保存数据 100 年以及EERPOM的耐久性问题 比如Microchip的文档里面介绍&#xff0c;EEPRO…

C++I/O流——(4)格式化输入/输出(第一节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

独立服务器和云服务器的区别

独立服务器和云服务器的区别是很多用户在选择服务器时要做的课程&#xff0c;那么独立服务器和云服务器的区别有哪些呢? 独立服务器和云服务器是两种不同的服务器部署方式&#xff0c;它们在性能、成本、资源利用、安全性和维护等方面存在显著差异。 1. **性能对比**&#xff…

【DC-6靶场渗透】

文章目录 前言 一、确定靶场地址 二、信息收集 三、账号枚举并破解 四、寻找漏洞 五、反弹shell 六、提权 前言 今天做一下DC6靶场 一、确定靶场地址 1、查看靶机mac地址 2、kali使用nmap&#xff0c;arp-scan工具扫描 nmap -sn 172.16.100.0/24 arp-scan 172.16.100.0/24 I…

Kali Linux保姆级教程|零基础从入门到精通,看完这一篇就够了!(附工具包)

作为一名从事网络安全的技术人员&#xff0c;不懂Kali Linux的话&#xff0c;连脚本小子都算不上。 Kali Linux预装了数百种享誉盛名的渗透工具&#xff0c;使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 今天给大家分享一套Kali Linux资料合集&#xf…

【大模型评测】常见的大模型评测数据集

开源大模型评测排行榜 https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard 其数据是由其后端lm-evaluation-harness平台提供。 数据集 1.英文测试 MMLU https://paperswithcode.com/dataset/mmlu MMLU&#xff08;大规模多任务语言理解&#xff09…

公网对讲|酒店无线对讲系统

提高工作效率 酒店对讲机可以帮助酒店员工实现快速、有效的内部沟通&#xff0c;从而提高服务质量。例如&#xff0c;前台接待人员可以通过对讲机及时通知客房服务人员为客人提供快速入住服务&#xff0c;或者通知餐饮部门为客人提供送餐服务。此外&#xff0c;对讲机还可以帮…

我劝你千万不要去做CSGO游戏搬砖

大家好&#xff0c;我是阿阳。今天我要给大家讲解一下做CSGO游戏搬砖项目前必须知道的五个问题。作为一个做这个项目已经三年多的老手&#xff0c;我带过的搬砖学员已经有好几百人了。在这个过程中&#xff0c;也积累了不少经验和教训&#xff0c;希望能够通过这篇文章给大家一…

Vue创建项目配置情况

刚开始接触vue项目创建和运行因为node版本和插件版本不一致时长遇到刚装好插件&#xff0c;项目就跑不起来的情况&#xff0c;特此记录一下 vue -V vue/cli 5.0.8 node -v v12.22.12 npm -v 6.14.16 关闭驼峰命名检查、未使用语法检查 package.json文件内容&#xff1a; {&…

数学建模常见算法的通俗理解(更新中)

目录 1.层次分析法&#xff08;结合某些属性及个人倾向&#xff0c;做出某种决定&#xff09; 1.1 粗浅理解 1.2 算法过程 1.2.1 构造判断矩阵 1.2.2 计算权重向量 1.2.3 计算最大特征根 1.2.4 计算C.I.值 1.2.5 求解C.R.值 1.2.6 判断一致性 1.2.7 计算总得分 2 神经网…

Verdaccio中,创建私服时,如何用VERDACCIO_PUBLIC_URL修改页面上资源文件的域名

更多内容&#xff0c;欢迎访问&#xff1a;Verdaccio npm私服时&#xff0c;遇到更多问题 用 Verdaccio 搭建私服时&#xff0c;当使用定义的域名访问时&#xff0c;报错&#xff0c;原因是JS等资源文件的访问域名是 127.0.0.1:4873&#xff0c;并不是我们想要的域名: 通过查看…

2024年第二届“华数杯”国际大学生数学建模竞赛 (B题 ICM)| 光伏发电分析 |数学建模完整代码+建模过程全解全析

光伏发电是一种重要的可再生能源。将太阳能转化为电力可以减少对传统能源的依赖,具有显著的环保和可持续发展优势。全球范围内,光伏发电正在迅速发展。目前,许多国家将光伏发电作为推动清洁能源转型的重要手段。这些国家在政策支持、技术创新和市场发展方面增加了对光伏发电的投…

视频改字视频制作系统,祝福视频,告白视频改字系统搭建开发定制

一、视频改字制作系统功能介绍&#xff1a; 素材同步&#xff0c;极速下载&#xff0c;会员充值&#xff0c;达人分销&#xff0c;积分系统&#xff0c;精美UI&#xff0c; 卡密兑换&#xff0c; 直播挂载&#xff0c; 五端兼容&#xff1a;微信小程序&#xff0c;抖音小程序&…

Kafka-RecordAccumulator分析

前面介绍过&#xff0c;KafkaProducer可以有同步和异步两种方式发送消息&#xff0c;其实两者的底层实现相同&#xff0c;都是通过异步方式实现的。 主线程调用KafkaProducer.send方法发送消息的时候&#xff0c;先将消息放到RecordAccumulator中暂存&#xff0c;然后主线程就…

JVM实战(23)——内存碎片优化

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

I2C总线和通信协议详解 (超详细配42张高清图+万字长文)

I2C总线和通信协议详解 (超详细配42张高清图万字长文) I2C&#xff08;Inter-Integrated Circuit&#xff09;通信总线&#xff0c;作为嵌入式系统设计中的一个关键组成部分&#xff0c;其灵活性和高效率使其在高级应用中备受青睐。本文旨在提供关于I2C通信总线的深度解析&…

认识并使用JWT

认识并使用JWT 一、互联网世界的用户认证二、对JWT的基本认知三、JWT的原理1 Header2 Payload3 Signature4 [参考资料](https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html) 四、使用JWT1、引入依赖2、jwt的生成与解析3、测试3.1 生成jwt3.2 解析jwt 一、互…