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

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.rhkb.cn/news/292288.html

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

相关文章

awesome-cheatsheets:超级速查表 - 编程语言、框架和开发工具的速查表

awesome-cheatsheets:超级速查表 - 编程语言、框架和开发工具的速查表,单个文件包含一切你需要知道的东西 官网:GitHub - skywind3000/awesome-cheatsheets: 超级速查表 - 编程语言、框架和开发工具的速查表,单个文件包含一切你需…

java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 疫苗预约管理系统是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使…

小狐狸ChatGPT付费AI创作系统V2.8.0独立版 + H5端 + 小程序前端

狐狸GPT付费体验系统的开发基于国外很火的ChatGPT,这是一种基于人工智能技术的问答系统,可以实现智能回答用户提出的问题。相比传统的问答系统,ChatGPT可以更加准确地理解用户的意图,提供更加精准的答案。同时,小狐狸G…

【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)

书接上文:创建一个项目 在经过cmakemsbuild顺利生成动态库之后,考虑到我一个项目可能会生成多个动态库,它们分散在build内的不同文件夹,我希望能将它们收拢到一个文件夹下,并将其回传到svn。 一、动态库移位—cmake实…

H5抓包——Android 使用电脑浏览器 DevTools调试WebView

H5抓包——Android 使用电脑浏览器 DevTools调试WebView 一、使用步骤 1、电脑通过数据线连接手机,开启USB调试(打开手机开发者选项) 2、打开待调试的H5 App,进入H5界面 3、打开电脑浏览器,调试界面入口 如果用ed…

linux命令之tput

1.tput介绍 linux命令tput是可以在终端中进行文本和颜色的控制和格式化,其是一个非常有用的命令 2.tput用法 命令: man tput 3.样例 3.1.清除屏幕 命令: tput clear [rootelasticsearch ~]# tput clear [rootelasticsearch ~]# 3.2.…

C#/BS手麻系统源码 手术麻醉管理系统源码 商业项目源码

C#/BS手麻系统源码 手术麻醉管理系统源码 商业项目源码 手麻系统从麻醉医生实际工作环境和流程需求方面设计,与HIS,LIS,PACS,EMR无缝连接,方便查看患者的信息;实现术前、术中、术后手术麻醉信息全记录;减少麻醉医师在…

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion)

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion) 前言1、基础对比Stable Diffusion(SD)SD界面安装与使用SD Midjouney(MJ) 2、硬件与运行要求对比Stable Diffusion硬件要求内存硬盘显卡 Midjo…

MySQL开窗函数

测试环境:mysql8.0.18 官方文档:https://dev.mysql.com/doc/refman/8.0/en/window-functions.html 一、窗口函数介绍二、语法结构三、自定义窗口1.rows(重点)2.range3.默认窗口 四、常用窗口函数示例1.row_number & rank &…

开源推荐榜【Taichi 专为高性能计算机图形学设计的编程语言】

Taichi是一个高性能的并行编程语言,它被嵌入在Python中,使得开发者能够轻松编写可移植的、高性能的并行程序。这个库的核心优势在于它能够将计算密集型的Python代码在运行时通过即时编译器(Just-In-Time, JIT)转换成快速的机器代码,从而加速P…

吴恩达2022机器学习专项课程(一) 4.1 梯度下降

问题预览 梯度下降算法的作用是?梯度下降的过程?梯度下降和最小化成本函数的联系?所有的成本函数都是一个形状吗?在非凸形状中,梯度下降的更新过程是?在非凸形状中,不同的初值对最小化成本函数…

使用itext-core生成PDF

1、添加引用依赖包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-core</artifactId><version>8.0.3</version><type>pom</type></dependency> 2、上代码 package com.student.demo.pdf;impor…

011_string_and_cell_in_Matlab中的字符串与元胞数组

Matlab中的字符串与元胞数组 1. 字符串 1.1 为什么 这两个东西拉在一起讲&#xff0c;是因为在2016a之前的Matlab中&#xff0c;要表示一个字符串的数组&#xff0c;只能用元胞数组。 最初的字符串在Matlab中的类型是字符&#xff0c;在Matlab中&#xff0c;一个字符就是一…

Sentinel原理及实践

Sentinel 是什么 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 为什么使用sentinel&…

解决前后端通信跨域问题

因为浏览器具有同源策略的效应。 同源策略是一个重要的网络安全机制&#xff0c;用于Web浏览器中&#xff0c;以防止一个网页文档或脚本来自一个源&#xff08;域、协议和端口&#xff09;&#xff0c;获取另一个源的数据。同源策略的目的是保护用户的隐私和安全&#xff0c;防…

基于Spring Boot的在线学习系统的设计与实现

基于Spring Boot的在线学习系统的设计与实现 摘 要 在线学习系统是以大学传统线下教学方式不适应信息技术的迅速发展为背景&#xff0c;提高学习效率&#xff0c;解决传统教学问题&#xff0c;并且高效的实现教学信息化的一款软件系统。为了更好的实现对于教学和学生的管理&a…

FL Studio21.2.3中文版软件新功能介绍及下载安装步骤教程

FL Studio21.2中文版的适用人群非常广泛&#xff0c;主要包括以下几类&#xff1a; FL Studio 21 Win-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55981 FL Studio 21 Mac-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55982 音乐制作人&#xff1a…

记录关于智能家居的路程的一个bug___Segmentation fault(段错误)

前言 其实发生段错误的情况有很多&#xff1a; 其实在项目的开发中最有可能的错误就是①和②&#xff0c;考虑到本项目数组用的比较少&#xff0c;所以主要是考虑错误①指针的误用。 有时候错误就是那么离谱&#xff0c;声音也算是一种设备&#xff1f;&#xff1f;&#xff…

【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案

政策背景 国家部委 ※2017年5月3日国务院安委会召开电气火灾综合治理工作视频会议&#xff0c;决定在全国范围内组织开展为期3年的电气火灾综合治理工作。 公安部领导 ※公安部副部长李伟强调&#xff1a;向科技要战斗力&#xff0c;加快推进“智慧消防”建设不断提升火灾防控…

大创项目推荐 深度学习 opencv python 实现中国交通标志识别_1

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…