Linux系统c/c++开发环境配置

news2024/11/18 23:47:49

安装LLVM全家桶及CMAKE

输入以下命令,安装clang,clangd,lldb及cmake。
sudo apt install clang clangd lldb cmake

yukeyang@DESKTOP-QFK2F47:~/myfiles/test$ sudo apt install clang clangd lldb cmake
[sudo] password for yukeyang: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
cmake is already the newest version (3.16.3-1ubuntu1.20.04.1).
The following additional packages will be installed:
  binfmt-support clang-10 clangd-10 cpp-9 g++-9 gcc-10-base gcc-9 gcc-9-base gfortran-9 lib32gcc-s1 lib32stdc++6 libasan5 libatomic1 libc-dev-bin libc6 libc6-dev libc6-i386 libcc1-0 libclang-common-10-dev
  libclang-cpp10 libgc1c2 libgcc-9-dev libgcc-s1 libgfortran-9-dev libgfortran5 libgomp1 libitm1 liblldb-10 liblsan0 libncurses-dev libncurses6 libncursesw6 libobjc-9-dev libobjc4 libomp-10-dev libomp5-10 libpfm4
  libquadmath0 libstdc++-9-dev libstdc++6 libtinfo-dev libtinfo6 libtsan0 libubsan1 libz3-4 libz3-dev lldb-10 llvm-10 llvm-10-dev llvm-10-runtime llvm-10-tools python3-lldb-10
Suggested packages:
  clang-10-doc gcc-9-locales g++-9-multilib gcc-9-doc gcc-9-multilib gfortran-9-multilib gfortran-9-doc glibc-doc ncurses-doc libomp-10-doc libstdc++-9-doc llvm-10-doc
The following NEW packages will be installed:
  binfmt-support clang clang-10 clangd clangd-10 lib32gcc-s1 lib32stdc++6 libc6-i386 libclang-common-10-dev libclang-cpp10 libgc1c2 liblldb-10 libncurses-dev libobjc-9-dev libobjc4 libomp-10-dev libomp5-10 libpfm4
  libtinfo-dev libz3-4 libz3-dev lldb lldb-10 llvm-10 llvm-10-dev llvm-10-runtime llvm-10-tools python3-lldb-10
The following packages will be upgraded:
  cpp-9 g++-9 gcc-10-base gcc-9 gcc-9-base gfortran-9 libasan5 libatomic1 libc-dev-bin libc6 libc6-dev libcc1-0 libgcc-9-dev libgcc-s1 libgfortran-9-dev libgfortran5 libgomp1 libitm1 liblsan0 libncurses6
  libncursesw6 libquadmath0 libstdc++-9-dev libstdc++6 libtinfo6 libtsan0 libubsan1
27 upgraded, 28 newly installed, 0 to remove and 718 not upgraded.
Need to get 115 MB of archives.
After this operation, 421 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main amd64 libc6-dev amd64 2.31-0ubuntu9.14 [2,519 kB]
...

安装vscode插件

安装以下vscode插件(CMake, CMake Tools, CodeLLDB, clangd)
在这里插入图片描述
其中CodeLLDB需要下载一个文件,几乎是一定会下载失败的。
在这里插入图片描述
在这里插入图片描述
超时之后点击弹出来的消息,手动下载,然后再手动进行安装。
在这里插入图片描述

开始

随便找一个空文件夹打开,然后Ctrl+Shift+P或者你自定义的快捷键打开下拉菜单,搜索cmake,选择Quick Start:
在这里插入图片描述
给你的项目起个名字,类型选择Executable,第一次打开cmake可能还会问你一些编译套件的选择问题,选择clang即可,记得看清楚后缀免得用错。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
clangd报警无法找到编译数据库。
在这里插入图片描述
而这个数据库其实就在cmake生成的build文件夹里。
在这里插入图片描述
我们要让clangd识别项目的编译数据库,因此我们设置clangd参数。打开设置,搜索clangd,在Arguments配置项中输入参数–compile-commands-dir=${workspaceFolder}/build,然后点确定。
在这里插入图片描述
在这里插入图片描述
这个参数就是告知clangd我们的编译数据库在工作区根目录的build文件夹下。

重启VSCode,再次查看clangd输出,发现成功读入了参数,并且没有报错信息,同时能够使用cmake输入的编译指令即为配置成功。
在这里插入图片描述

运行与调试

按一下底部菜单中的build键,看看我们生成的可执行文件在哪里(一般就在build下面):
在这里插入图片描述

按F5键,VSCode会报错,同时在根目录下生成一个.vscode文件夹以及launch.json。打开这个json文件,将其中唯一一个需要我们配置的(也是本文第二次跟配置文件打交道)program项改为cmake生成的可执行文件的位置(按照惯例,根目录的名字和项目的名字应该是同一个,否则就需要手动指定)。
在这里插入图片描述
再按一次F5,终端返回了一句亲切的Hello, from select!。
在这里插入图片描述
上个断点试试:
在这里插入图片描述
至此,已经搭建起了一个简单的开发环境并且开始快乐地写代码了。

参考文献

[1] 几乎无痛的VSCode+clangd+lldb+cmake配置C/C++开发环境指南

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

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

相关文章

re:从0开始的CSS学习之路 1. CSS语法规则

0. 写在前面 现在大模型卷的飞起,感觉做页面的活可能以后就不需要人来做了,不知道现在还有没有学前端的必要。。。 1. HTML和CSS结合的三种方式 在HTML中,我们强调HTML并不关心显示样式,样式是CSS的工作,现在就轮到C…

如何在Linux中安装新版的Python软件

一、引言 Python是目前世界上最为流行的编程语言,其在人工智能领域表现尤为出色。通常,我们为了测试github上面的一些项目,比如:chat-on-wechat, 我们就可以在vps上的Linux系统中安装Python,从而实现各种人…

聚观早报 | iOS 17.4正式版将上线;魅族21 Pro或下月发布

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 2月5日消息 iOS 17.4正式版将上线 魅族21 Pro或下月发布 小米MIX Flip细节曝光 OPPO Find X7 Ultra卫星通信版 …

相机图像质量研究(3)图像质量测试介绍

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分词实践

基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分词实践 1.GRU简介 GRU(Gate Recurrent Unit)门控循环单元,是[循环神经网络](RNN)的变种种,与 LSTM 类似通过门控单元解决 RNN 中不能长期记忆和反向传播中的梯度等问题。与 LSTM 相…

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(一)

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(一) 基于Matrix,控制Bitmap的setRectToRect的目标RectF的宽高。从很小的宽高开始,不断迭代增加setRectToRect的目标RectF的宽高&#xff0c…

python进行批量搜索匹配替换文本文字的matlab操作实例

在进行一些数据处理时,可能需要抓取原文中的一些内容,批量替换原文另外的一些内容,而且事先还需要一步搜索匹配的步骤。 举个例子,如下matlab输出的txt文件,原文件有几万行数据,这里只摘取3行对应的 文件文…

react 之 react.forwardRef

react.forwardRef使用ref暴露DOM节点给父组件 1.使用场景 import { forwardRef, useRef } from "react"// 子组件 // function Son () { // return <input type"text" /> // }const Son forwardRef((props, ref) > {return <input type&qu…

Golang与Erlang有什么差异

Golang和Erlang是两种备受关注的编程语言&#xff0c;它们各自具有独特的特点和优势。下面我将简单的探讨一下Golang和Erlang之间的差异&#xff0c;并且分析它们在并发模型、运行环境、函数式编程和领域特性等多个方面的不同之处。 并发模型 Golang使用goroutines和channels…

分布式延时消息的另外一种选择 Redisson (推荐使用)

前言 目录 前言 基本使用 内部数据结构介绍 基本流程 发送延时消息 获取延时消息 初始化延时队列 总结 因为工作中需要用到分布式的延时队列&#xff0c;调研了一段时间&#xff0c;选择使用 Redisson DelayedQueue&#xff0c;为了搞清楚内部运行流程&#xff0c;特记…

何时用‘x-->?‘将其代入lim中?极限的化简

【何时用‘x-->?将其代入lim中】 【极限的化简】 与极限解法区别&#xff1f; 方法有哪些&#xff1f; 什么条件下可以用&#xff1f; 怎么用&#xff1f;

Bootstrap5 图片轮播

Bootstrap5 轮播样式表使用的是CDN资源 <title>亚丁号</title><!-- 自定义样式表 --><link href"static/front/css/front.css" rel"stylesheet" /><!-- 新 Bootstrap5 核心 CSS 文件 --><link rel"stylesheet"…

大型语言模型(LLM)的优势、劣势和风险

最近关于大型语言模型的奇迹&#xff08;&#xff09;已经说了很多LLMs。这些荣誉大多是当之无愧的。让 ChatGPT 描述广义相对论&#xff0c;你会得到一个非常好&#xff08;且准确&#xff09;的答案。然而&#xff0c;归根结底&#xff0c;ChatGPT 仍然是一个盲目执行其指令集…

CodeFuse-VLM 开源,支持多模态多任务预训练/微调

CodeFuse-MFT-VLM 项目地址&#xff1a;https://github.com/codefuse-ai/CodeFuse-MFT-VLM CodeFuse-VLM-14B 模型地址&#xff1a;CodeFuse-VLM-14B CodeFuse-VLM框架简介 随着huggingface开源社区的不断更新&#xff0c;会有更多的vision encoder 和 LLM 底座发布&#x…

政安晨:机器学习快速入门(一){基于Python与Pandas}

对于刚接触ML&#xff08;机器学习&#xff09;的小伙伴来说&#xff0c;通过几篇文章能够快速登堂入室是非常及时且有用的&#xff0c;作者政安晨力求让小伙伴们&#xff0c;几篇文章内就可以达到这个目标&#xff0c;咱们开始&#xff01; 机器学习简介 咱们先看一下Pandas&…

Web APIs 2 事件

Web APIs 2 事件 事件监听案例&#xff1a;广告关闭案例&#xff1a;随机问答 事件监听版本事件类型案例&#xff1a;轮播图完整焦点事件键盘事件输入事件案例&#xff1a;评论字数统计 事件对象获取事件对象事件对象常用属性案例&#xff1a;评论回车发布 环境对象this回调函数…

6-2、T型加减速计算简化【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍简化T型加减速计算过程&#xff0c;使其适用于单片机数据处理。简化内容包括浮点数转整型数计算、加减速对称处理、预处理计算 一、浮点数转整型数计算 根据上一节内容已知 常用的晶振大小…

vscode 突然连接不上服务器了(2024年版本 自动更新从1.85-1.86)

vscode日志 ll192.168.103.5s password:]0;C:\WINDOWS\System32\cmd.exe [17:09:16.886] Got some output, clearing connection timeout [17:09:16.887] Showing password prompt [17:09:19.688] Got password response [17:09:19.688] "install" wrote data to te…

Excel——高级筛选匹配条件提取数据

一、筛选多条件 Q&#xff1a;筛选多个条件&#xff0c;并将筛选出的内容复制到其他区域 点击任意一个单元格 点击【数据】——【筛选】——【高级筛选】 选择【将筛选结果复制到其他位置】——在【列表区域】 鼠标选择对应的区域位置&#xff0c;条件区域一定要单独写出来&a…

vue2.0+使用md-edit编辑器

前言&#xff1a;小刘开发过程中&#xff0c;如果是博客项目一般是会用到富文本。众多富文本中&#xff0c;小刘选择了markdown&#xff0c;并记录分享了下来。 # 使用 npm npm i kangc/v-md-editor -Smain.js基本配置import VueMarkdownEditor from kangc/v-md-editor; import…