使用VScode + clangd 阅读 c/c++ 源码环境搭建

这篇具有很好参考价值的文章主要介绍了使用VScode + clangd 阅读 c/c++ 源码环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Vscode + clangd 阅读c/c++源码

一、需求

在嵌入式软件开发的工作中,我们常常需要分析C/C++代码,比如linux kernel 的代码,而公司的代码一般都会存放在服务器中,服务器一般是linux,且无法联网,我们只能通过本地笔记本ssh访问服务器,这就导致阅读linux 源码时,需要跳转定义、声明时比较麻烦,本文就介绍了使用VScode + clangd 实现这个需求,同时会更新一些有效的插件帮助开发

二、实现逻辑简介

clangd 是一个应用程序,可以实现对c项目中的符号定义跳转,函数补全等功能。
Vscode 是文本编辑器,可以使用clangd 插件与服务器上的clangd 交互,实现vscode编辑器内的符号跳转等

三、环境安装

1、remote - ssh

安装remote - ssh 插件,并添加一个远程服务器:
连接到192.168.1.12 服务器,用户名prx,端口是22

ssh prx@192.168.1.12 -p 22

进入后vscode会给服务器下载vscode sevrer,需要输入密码,这样就能浏览服务器上的文件了。
注意:需要给当前用户编辑文件的权限,不然在vscode中编辑的内容无法保存到服务器,例如在kernel项目根目录下执行:

sudo chmod 777 -R .

离线安装remote ssh:
需要给服务器安装vscode server,下载对应版本的安装包,解压到指定目录即可:其中commit id 是vscode对应的,当启动vscode连接服务器时会自动在~/.vscode-server/bin/目录下产生。
使用VScode + clangd 阅读 c/c++ 源码环境搭建

2、安装clangd

clangd ,也可以叫clangd server,她要安装在服务器上,读取kernel 项目的代码,分析代码的编译规则等,然后等待客户端的请求。
在ubuntu 上可以用下面命令安装clangd

sudo apt-install clangd

clangd 需要输入compile_command.json文件才能开始分析kernel 的源码。要在kernel 的代码中生成compile_command.json文件,需要借助bear 应用程序,用下面命令安装bear

sudo apt-install bear

然后使用下面的命令编译kernel ,就能在kernel根目录下看到compile_command.json

sudo bear make -j8

clangd server 还需要配置文件来告诉她去那里找到compile_command.json,在kernel 项目根目录下,新建一个 .clangd 文件,编辑文件输入下面的内容:

compile_commands_dir: /home/prx/purple_pi/out/kernel/src_tmp/linux-5.10

其中** /home/prx/purple_pi/out/kernel/src_tmp/linux-5.10** 是你的kernel 代码的根目录
或者直接启动:

clangd --compile-commands-dir=/home/prx/purple_pi/out/kernel/src_tmp/linux-5.10

完成以上步骤,就可以启动clangd server,读取/home/prx/purple_pi/out/kernel/src_tmp/linux-5.10compile_command.json,分析代码符号,并等待客户端请求.
使用VScode + clangd 阅读 c/c++ 源码环境搭建

3、安装vscode clangd 插件

启动vscode,连接到服务器,并安装clangd 插件:
使用VScode + clangd 阅读 c/c++ 源码环境搭建
这个clangd 插件是作为一个客户端,去和服务器上的clangd server 进行交互,发送请求等,所以她的体积并不大。安装完成后,就可以在vscode上打开kernel 的目录,随意点开一个文件,尝试跳转定义等。

4、clangd 的功能演示

代码补全:
使用VScode + clangd 阅读 c/c++ 源码环境搭建
查看声明和定义:
使用VScode + clangd 阅读 c/c++ 源码环境搭建
跳转符号的定义处:
ctrl + p 调出vscode 命令行,输入#前缀,再输入符号名称,即可跳转到定义处

#kmalloc

格式化文件
可以将c、c++、文件格式化,保证文件的语法格式健康,快捷键shift+alt+f

四、vscode插件推荐

1、hightlight-words插件

变量高亮是阅读代码中实用的功能,在vscode中安装hightlight-words 插件,可以实现该功能。
使用VScode + clangd 阅读 c/c++ 源码环境搭建
下面教你如何设置快捷键实现变量高亮:
打开vscode命令行输入:

>Hightlight Word Toggle Current

在下面的提示符中,选择右边的齿轮,即可设置快捷键

2、ripgrep

vscode 的搜索速度太慢了,可以使用ripgrep 应用来替换掉vscode自带的搜索功能。
ripgrep 是一个在服务器上运行的应用程序,需要先在服务器上安装(可以离线安装)
安装完成后,需要告诉vscode,在服务器上搜索文本时,使用ripgrep 作为搜索引擎:首先打开vscode命令,输入:

Preferences: Open Settings (JSON)(SSH:192.168.1.12)

打开服务器上的vscode配置文件,在其中输入下面的配置:

"search.defaultSearchProvider": "search-in-workspace",
"search.inWorkspace.useRipgrep": true,
"search.inWorkspace.additionalFileTypes": [
  "cpp",
  "c",
  "h",
  "hpp"
]

这个配置文件告诉vscode,搜索时使用ripgrep 搜索 cpp、c、h、hpp文件

五、参考文章

给服务器安装vscode插件文章来源地址https://www.toymoban.com/news/detail-495446.html

到了这里,关于使用VScode + clangd 阅读 c/c++ 源码环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JDK源码阅读环境搭建

    新建java项目JavaSourceLearn ,这里我创建的是maven 打开Project Structure 找到本地JDK安装位置将src.zip解压到项目java包中 整理下项目结构,删除用不到的目录 提示 : 添加源码到项目之后首次运行需要较长时间进行编译,建议先设置好 进程堆 ,防止编译失败 打开File - Settings - Build, Exe

    2024年02月05日
    浏览(19)
  • Redis 7.0 源码环境搭建与阅读技巧

    天下武功,无坚不摧,唯快不破!我的名字叫 Redis,全称是 Remote Dictionary Server。 有人说,组 CP,除了要了解她外,还要给机会让她了解你。 那么,作为开发工程师的你,是否愿意认真阅读此心法抓住机会来了解我,运用到你的系统中提升性能。 我遵守 BSD 协议,由意大利人

    2024年02月08日
    浏览(22)
  • Linux下使用VScode开发ROS时clangd插件的使用

    本人在最近刚开始接触Linux和ROS开发,在开发过程中发现,微软的C/C++的intelliSense的代码补全,纠错等功能是真的难用,恰好有学长跟我提起了clangd这个东西,而且以前用clion去写一些小的C/C++工程,想着怎么去配置一下在vscode上使用clangd,让自己写代码更舒服一些(主要是太

    2024年02月02日
    浏览(10)
  • 在Windows上使用VScode阅读kernel源码

    有一说一,在Windows上使用Source Inside阅读kernel源码真的很舒服,但是有时候带着轻薄本出去,又不想往轻薄本上安装很多的软件,就使用VS code临时阅读kernel源码。如果不能进行跳转,阅读kernel源码就很难受,今天就记录一下,如何配置VS code,可以方便地阅读kernel源码。 首先

    2024年01月18日
    浏览(15)
  • [ vscode + clangd + gcc + gdb + cmake] 一文带你构造C/C++开发环境 #支持嵌入式开发 #超详细 #小白

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:本节讲解了为什么需要配置这样一套开发环境,可以跳过 本文力求通俗、详细的讲解 C程序开发 环境配置。深入浅出的讲解以及大量的图片对小白更友好。看完本文你将得到一套 vscode + gcc + gdb

    2024年02月20日
    浏览(12)
  • VSCode使用 - 搭建python运行调试环境

    VSCode是一个优秀的编辑工具,适合代码阅读,代码编辑,甚至配置好之后,可以编译与调试代码。 为了方便编辑,运行python程序,本文就聊聊如何将VSCode搭建为一个python的IDE吧,具备运行与调试python程序的能力。 首先,安装python程序,这样才能进行python开发,我这里安装了

    2024年02月12日
    浏览(18)
  • 详解如何使用VSCode搭建TypeScript环境(适合小白)

    因为TypeScript不能直接在浏览器上运行。它需要编译器来编译并生成JavaScript文件。所以需要首先安装好javascript环境,可以参考文章: 详解如何使用VS code搭建JavaScript环境(适合小白)_vscode配置javascript环境-CSDN博客 执行下面命令进行安装 npm install -g typescript 安装完成后我们就

    2024年02月04日
    浏览(15)
  • 为vscode配置clangd

    clangd能提供更好的补全和提示,自带检查一些warning的问题,可以减少大家未来找存在的warning的时间。经过配置可以在unittest和timetest中也实现自动补全,平均速度比vscode c/c++插件更快。 在插件市场搜索clangd。安装即可。注意c/c++可以不用卸载,否则调试可能会有点问题。 在

    2023年04月08日
    浏览(13)
  • 【使用vscode在线web搭建开发环境--code-server搭建】

    https://github.com/coder/code-server/releases?q=4.0.0expanded=true 使用大于版本3.8.0,因为旧版本有插件市场不能访问的情况 版本太高需要更新环境依赖 出现报错 修复不能切换环境问题(请在项目中添加) 启动问题 终端执行 效果 地址栏输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure 地

    2024年02月19日
    浏览(14)
  • 使用VsCode搭建Node.js服务器开发环境

    使用VsCode搭建Node.js服务器开发环境 在进行Node.js服务器开发时,一个好的集成开发环境可以帮助您更快地编写代码,并且提高程序的效率。在此推荐安装配置VSCode作为Node.js服务器开发环境,下面介绍安装配置过程。 Step 1:下载安装VSCode 首先我们需要访问VSCode官网(https://c

    2024年02月15日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包