当前位置: 首页 > news >正文

兰州 网站建设品牌营销案例

兰州 网站建设,品牌营销案例,保定手机网站,湖南网站建设公司 地址磐石网络1、背景介绍上一篇文章:VScode 结合Global构建linux源代码阅读环境 ,介绍了在VS Code工具中通过remote-ssh远程登陆到Linux远程服务器,使用Global构建linux源代码阅读环境,对linux kernel代码进行解析,实现全局搜索、自…

1、背景介绍

上一篇文章:VScode 结合Global构建linux源代码阅读环境 ,介绍了在VS Code工具中通过remote-ssh远程登陆到Linux远程服务器,使用Global构建linux源代码阅读环境,对linux kernel代码进行解析,实现全局搜索、自动跳转、代码补全等功能,但是Global工具在建立代码索引数据时,将整个Linux源代码都进行了数据检索分析,这样会有很多重复的定义和声明,不够智能,不够方便,接下来介绍使用vscode + clangd工具来解决此问题。

2、原理介绍

clangd 可以实现代码语义分析、代码补全、跳转等,能做到代码精准跳转、精准自动补全;其原理是通过读取工程编译自动生成的compile_commands.json 文件来索引其中包含的源文件和关联的头文件,因此能避免索引非编译的代码造成解析时语义混乱。compile_commands.json 文件是每个源文件的编译参数、路径等信息组成的一个json文件,clangd 通过这个文件可以准确定位源文件需要引用的头文件从而准确的找到各种宏定义、函数、变量声明的准确值。

Linux源代码已包含可以直接生成compile_commands.json文件的python脚本,在编译后Linux kernel代码路径下执行如下命令即可生成compile_commands.json文件:

python3 ./scripts/clang-tools/gen_compile_commands.py

3、安装插件

打开VS Code,在扩展界面搜索clangd后安装插件:

安装好插件后,使用VS Code打开任意C语言会提示你安装clangd程序,由于我是用remote-ssh登陆到远程linux服务器上的,所有clangd程序会安装到远程的服务器上,如果自动安装失败,也可以在远程服务器上使用命令安装(ubuntu服务器):

$ sudo apt install clangd

需要注意的是 clangd插件与C/C++ Intellisense、C/C++ GNU Global是冲突的,需要禁用或者卸载。

4、环境配置

前面的文章有提到在VS code 下如何进行配置,和前面一样clangd的配置我们同样配置到远程用户 setting.json文件中,在setting.json文件中新增如下配置:

    "clangd.arguments": ["--compile-commands-dir=${workspaceFolder}","--background-index","--completion-style=detailed","--header-insertion=never","--log=verbose"],

完成配置后,打开任意源代码文件触发clangd进行解析:

clangd 检索的数据库位于工作目录 .cache/clangd 文件夹,如果想重新生成检索只要删除相关的文件即可。如果一切正常,就看实现代码跳转了,但是一般都会出现问题:

如上图所示,出现了 Unknown argument: '-fno-allow-store-data-races' 等错误。

解决方案:在工作目录新建 .clangd 文件,输入如下内容(同类型的错误都可以使用此方案解决)

CompileFlags:Remove: [-fno-allow-store-data-races,-fconserve-stack]   

clangd解析过程会输出相应的日志信息,可以根据输出信息进行问题的排查:

上图最核心的错误提示:unkown target ABI 'lp64',在 .clangd 文件添加:-mabi=lp64

CompileFlags:Remove: [-fno-allow-store-data-races,-fconserve-stack,-mabi=lp64]   

解决相关的错误问题后,重新打开VS code,clangd会触发重新检索源代码,检索完成后即可使用clangd来检索代码:

5、阅读代码

clangd index 完成后,打开任意代码文件,选择相关函数或者变量,使用快捷键: CTRL+鼠标左键(或者F12),实现函数定义的跳转查询,跳转以后使用快捷键:ALT+左键头 返回;当然也具备对函数进行自动提示、补全的功能:

这样就可以对linux kernel 代码进行愉快的探索了................

6、后记

根据前面一系列的文章,已介绍使用VS Code 远程登陆到服务器,对Linux kernel代码建立索引,实现全局搜索、自动跳转、代码补全等功能,愉快的阅读Linux kernel源代码了,下一步将介绍如何在VS code 中实现gdb可视化调试linux kernel源代码。

http://www.tj-hxxt.cn/news/105377.html

相关文章:

  • 全栈开发需要学什么课程win优化大师有用吗
  • 教育培训推广网站模板网站推广的主要方法
  • 绍兴网站制作系统品牌推广策略怎么写
  • 成品网站w灬 源码1688三叶草公司宣传软文
  • wordpress 文档插件安卓优化大师hd
  • 动态的网站怎么做seo1现在怎么看不了
  • 南通做网站建设公司aso具体优化
  • 用divid做网站代码看seo
  • 做网站属于广告费吗推广普通话手抄报内容简短
  • 国家工信部备案网站淘宝店怎么运营和推广
  • 做百度移动端网站软件下载南宁哪里有seo推广厂家
  • 菜鸟零基础如何自学编程搜索引擎优化的目标
  • 郴州信息港网站百度企业网盘
  • vs2010网站制作教程网址大全是ie浏览器吗
  • 做一个网站中的搜索功能怎么做淘大象关键词排名查询
  • 深圳福永做网站外链link
  • 北京制作网站公司哪家好常用的营销方法和手段
  • 请打开123720的网站百度亚马逊关键词排名查询工具
  • 做一个网站推广百度标记号码认证平台
  • 常用设计网站百度认证考试
  • 绿色企业网站模板宁波专业seo服务
  • 淘宝可做的团购网站进一步优化营商环境
  • 网站改版对seo的影响上海seo公司排名榜
  • 旅游网站结构图域名免费注册
  • html5做网站的代码域名权重
  • 用ps做网站页面的大小搜索引擎优化指的是什么
  • 成都网站制作方案搭建网站工具
  • 网页设计在安阳工资多少快速网站排名优化
  • 设计类网站app搜狗网页
  • 网站除了做流量还需要什么中小企业管理培训课程