ubuntu+clangd+vscode 实现项目代码快速跳转(如: Linux 内核源码)

news2024/11/24 9:46:35

1. 准备工作

  1. 虚拟机 ubuntu 环境,笔者用的是 ubuntu20.04。
  2. windows 安装好 vscode 软件。

2. 配置过程

2.1 vscode远程连接 ubuntu

  1. ubuntu 虚拟机开启 ssh 服务
sudo apt install openssh-server
sudo service ssh start
  1. vscode 安装 remote-ssh 插件

在这里插入图片描述

  1. vscode 远程连接 ubuntu

在这里插入图片描述

输入 ssh 你的ubuntu用户名@你的ubuntu IP地址,回车确认。在弹出的选项中默认选择第一项。

在这里插入图片描述
第一项选择后,会在右下角弹窗,直接点击 connect。
在这里插入图片描述

弹出输入密码,输入密码后会再次弹出输入密码确认。

在这里插入图片描述

点击 Open Folder,打开你在 Ubuntu 上的 Linux 内核源码路径,或者是你的工程源码路径。就可以进行代码的编辑查看操作,接下来配置 clangd。

在这里插入图片描述

2.2 clangd 的配置

2.2.1 安装 clangd

  1. ubuntu 上安装 clangd
sudo apt install clangd

安装完成后确认是否成功:

clangd --version
  1. vscode 上安装 clangd 插件

在这里插入图片描述

2.2.2 vscode 配置 clangd 插件

  1. 添加配置参数,一个 item 一个 item 的添加。
–compile-commands-dir=${workspaceFolder}
–background-index
–completion-style=detailed
–header-insertion=never
-log=info

在这里插入图片描述

  1. 加入 clangd 的绝对路径。

在这里插入图片描述

这里可在 ubuntu 上确认 clangd 的安装路径。

whereis clangd

在这里插入图片描述

3. 使用

3.1 CMake 组织的项目

需要定义 CMAKE_EXPORT_COMPILE_COMMANDS
示例:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1

3.2 Makefile 组织的项目

需要先安装 bear。在编译项目时,make 前面添加 bear。

sudo apt-get install bear

示例:

bear make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig -j$(nproc)
bear make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig -j$(nproc)
bear make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j$(nproc)
bear make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage LOADADDR=0x60003000 -j$(nproc)

4. 小结

大型项目,跳转很快,阅读代码效率飞起。

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

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

相关文章

前端三剑客 —— CSS (上)

上节内容中提到了 前端三剑客 —— HTML 超文本标记语言,这节内容 跟大家讲述三剑客中的第二个 CSS。 CSS 什么是CSS Cascading Style Sheel,简称CSS,中文叫层叠样式表,也叫级联样式表。主要作用是来修饰HTML页面的一种技术。 …

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑新能源发电商租赁共享储能的电力市场博弈分析》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

C# wpf 嵌入wpf控件

WPF Hwnd窗口互操作系列 第一章 嵌入Hwnd窗口 第二章 嵌入WinForm控件 第三章 嵌入WPF控件(本章) 第四章 底部嵌入HwndHost 文章目录 WPF Hwnd窗口互操作系列前言一、如何实现?1、继承HwndHost2、添加Content属性3、创建wpf窗口并设置Conten…

node.js项目初始化操作

项目环境Vscode 1.新建一个文件夹node.js(xx.js) 2.右键点击node.js,点击打开终端 我在VScode打开终端 输入npm init初始化项目没反应。 解决方法:进入文件夹node.js,出入cmd跳转到终端 重新输入npm init命令 正确结果如下图 后续命令按下…

Python进阶编程 --- 1.类和对象

文章目录 第一章:1.初始对象1.1 使用对象组织数据1.2 类的成员方法1.2.1 类的定义和使用1.2.2 创建类对象1.2.3 成员变量和成员方法1.2.4 成员方法的定义语法1.2.5 注意事项 1.3 类和对象1.3.1 基于类创建对象 1.4 构造方法1.5 其他内置方法1.5.1 魔术方法str字符串…

http认证

1.Digest认证 各字段含义: Nonce 服务器直接返回的数据 H1MD5(user”:”realmpassword) H2MD5(method”:”url) method为请求类型、url不包括域名 Nc 指当前的第几次请求,使用8位16进制显示 Cnonce 8位随机字符串 ResponseMD5(H1”:”nonce”:”…

Mysql---安全值守常用语句

文章目录 目录 文章目录 一.用户权限设置 用户设置 元数据查询 Union联合查询 分组查询 字符串函数 总结 一.用户权限设置 用户设置 #用户创建 create user "用户名""%主机名" identified by "密码" #用户删除 drop user 用户名 #用户查询…

ACGO愚人节欢乐赛#18

念旧的人,注定被困在回忆里 解题思路: 将数组升序排序,然后找每m个数的最大值减最小值的最小值,如不不排序直接判断的话,不能保证最优解。注意判断每m个数时都要赋值初值,避免影响结果 下面是c代码&#…

光明源@智慧厕所公厕软件系统有哪些核心功能?

在现代城市的建设中,智慧公厕的建设成为了提升城市品质和居民生活质量的重要举措。而智慧公厕的核心,不仅仅在于其硬件设备的智能化,同样重要的是其背后支持的智慧厕所公厕软件系统。让我们一起探讨,智慧厕所公厕软件系统有哪些核…

深度学习基础模型之Mamba

Mamba模型简介 问题:许多亚二次时间架构(运行时间复杂度低于O(n^2),但高于O(n)的情况)(例如线性注意力、门控卷积和循环模型以及结构化状态空间模型(SSM))已被开发出来,以解决 Transformer 在长…

【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)

目录 前言 C关键字 命名空间 1.命名空间的定义 A.标准命名空间定义 B.命名空间允许嵌套定义 C.同名命名空间的合并 2.命名空间的使用 加命名空间名称及作用限定符 使用using将命名空间中某个成员引入 使用using namespace命名空间名称引入 C的输入和输出 缺省参数…

【LeetCode热题100】739. 每日温度(栈)

一.题目要求 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 二.题目难度…

上位机图像处理和嵌入式模块部署(qmacvisual图像拼接)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 qmacvisual本身提供了图像拼接的功能。功能本身比较有意思的。大家如果拍过毕业照,特别是那种几百人、上千人的合照,应该就…

基于SpringBoot的“校园志愿者管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园志愿者管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 系统首页界面图 志愿者注册…

数据分析之POWER Piovt透视表分析

将几个数据表之间进行关联 生成数据透视表 超级透视表这里的字段包含子字段 这三个月份在前面的解决办法 1.选中这三个月份,鼠标可移动的时候移动到后面 2.在原数据进行修改 添加列获取月份,借助month的函数双击日期 选择月份这列----按列排序-----选择月…

记录rocketMQ5.+启动报错解决过程

1.根据官方文档指引下载对应的rocketMQ源码包,上传到服务器解压 2. 启动NameServer nohup sh bin/mqnamesrv & 验证namesrv是否启动成功 tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success… 3.启动BrokerProxy nohup sh bin/mqbroker -n …

活动图高阶讲解-14

37 00:02:26,000 --> 00:02:32,000 接下来,我们看下一个知识点,就是决策 38 00:02:32,000 --> 00:02:38,000 就是令牌的一种什么, 39 00:02:38,000 --> 00:02:42,000 一种分流, 40 00:02:42,000 --> 00:02:47,000 它走哪个流, 41 00:02:…

C语言函数间参数传递

在C语言中,函数是程序的基本组成单元之一,而参数传递则是函数间交换信息的重要方式之一。本文将探讨C语言中函数间参数传递的各种方式及其特点。 以下是我整理的关于C语言的一些入门级资料,免费分享给大家:https://m.hqyjai.net/…

怎么让ChatGPT批量写作原创文章

随着人工智能技术的不断发展,自然语言处理模型在文本生成领域的应用也日益广泛。ChatGPT作为其中的佼佼者之一,凭借其强大的文本生成能力和智能对话特性,为用户提供了一种高效、便捷的批量产出内容的解决方案。以下将就ChatGPT批量写作内容进…

GeoLite2 geoip数据库下载和使用

GeoLite2 数据库是免费的 IP 地理定位数据库,与MaxMind 的 GeoIP2 数据库相当,但准确度较低 。GeoLite2 国家、城市和 ASN 数据库 每周更新两次,即每周二和周五。GeoLite2 数据还可作为 GeoLite2 Country 和 GeoLite2 City Web 服务中的 Web …