为vscode配置clangd

这篇具有很好参考价值的文章主要介绍了为vscode配置clangd。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

clangd能提供更好的补全和提示,自带检查一些warning的问题,可以减少大家未来找存在的warning的时间。经过配置可以在unittest和timetest中也实现自动补全,平均速度比vscode c/c++插件更快。

安装clangd 后端

sudo apt-get install clangd

安装clangd 前端

在插件市场搜索clangd。安装即可。注意c/c++可以不用卸载,否则调试可能会有点问题。
为vscode配置clangd

修改基础配置

  1. 在project folder下建立.vscode文件夹,创建settings.json文件。如下图
    为vscode配置clangd

  2. settings.json内容如下(注意本地可能需要也配置clangd.arguments否则可能会有问题,陈天浩就有这个问题)

{
  "files.associations": {
    "iostream": "cpp",
    "intrinsics.h": "c",
    "ostream": "cpp",
    "vector": "cpp"
  },
  // 开启粘贴保存自动格式化
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "editor.formatOnType": true,
  "C_Cpp.errorSquiggles": "Disabled",
  "C_Cpp.intelliSenseEngineFallback": "Disabled",
  "C_Cpp.intelliSenseEngine": "Disabled",
  "C_Cpp.autocomplete": "Disabled", // So you don't get autocomplete from both extensions.
  "clangd.path": "/usr/bin/clangd",
  // Clangd 运行参数(在终端/命令行输入 clangd --help-list-hidden 可查看更多)
  "clangd.arguments": [
    // 让 Clangd 生成更详细的日志
    "--log=verbose",
    // 输出的 JSON 文件更美观
    "--pretty",
    // 全局补全(输入时弹出的建议将会提供 CMakeLists.txt 里配置的所有文件中可能的符号,会自动补充头文件)
    "--all-scopes-completion",
    // 建议风格:打包(重载函数只会给出一个建议)
    // 相反可以设置为detailed
    "--completion-style=bundled",
    // 跨文件重命名变量
    "--cross-file-rename",
    // 允许补充头文件
    "--header-insertion=iwyu",
    // 输入建议中,已包含头文件的项与还未包含头文件的项会以圆点加以区分
    "--header-insertion-decorators",
    // 在后台自动分析文件(基于 complie_commands,我们用CMake生成)
    "--background-index",
    // 启用 Clang-Tidy 以提供「静态检查」
    "--clang-tidy",
    // Clang-Tidy 静态检查的参数,指出按照哪些规则进行静态检查,详情见「与按照官方文档配置好的 VSCode 相比拥有的优势」
    // 参数后部分的*表示通配符
    // 在参数前加入-,如-modernize-use-trailing-return-type,将会禁用某一规则
    "--clang-tidy-checks=cppcoreguidelines-*,performance-*,bugprone-*,portability-*,modernize-*,google-*",
    // 默认格式化风格: 谷歌开源项目代码指南
    // "--fallback-style=file",
    // 同时开启的任务数量
    "-j=2",
    // pch优化的位置(memory 或 disk,选择memory会增加内存开销,但会提升性能) 推荐在板子上使用disk
    "--pch-storage=disk",
    // 启用这项时,补全函数时,将会给参数提供占位符,键入后按 Tab 可以切换到下一占位符,乃至函数末
    // 我选择禁用
    "--function-arg-placeholders=false",
    // compelie_commands.json 文件的目录位置(相对于工作区,由于 CMake 生成的该文件默认在 build 文件夹中,故设置为 build)
    "--compile-commands-dir=build"
  ],
}

生成compile_commands.json文件

确保项目能够正常编译的前提下

cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .. -G 'Unix Makefiles'

之后在build目录下就会生成对应的compile_commands.json,格式如下。请务必确保存在compile_commands.json文件,这是clangd补全依赖文件,否则会失效

[
{
  "directory": "",
  "command": "",
  "file": "",
},
]

生成结束后可能需要手动启动reload window或者使用manually activate extension。之后每次打开project一般会自动开起。

为vscode配置clangd

为vscode配置clangd
可以通过ps -ef | grep clang查看是否存在进程

为vscode配置clangd

基本效果

补全

为vscode配置clangd

warning提醒

为vscode配置clangd

自动修改存在问题

为vscode配置clangd
为vscode配置clangd

注意事项

  1. 使用后最好使用下图close remote关闭,否则后台可能有进程未关闭

为vscode配置clangd

  1. 进程编译的时候,clangd会自动重新生成缓存,会占用较大的硬盘空间可能需要定时清理

为vscode配置clangd文章来源地址https://www.toymoban.com/news/detail-401369.html

到了这里,关于为vscode配置clangd的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vscode的vue代码提示与补全没反应(vetur问题)

    问题:vscode的里面写vue时候代码提示用不了了 问题原因:vetur这个插件升级了,与老版本的vscode不适配了 解决方案: 1.卸载vscode,与vscode官网下载最新版本vscode 2.安装老版本的vetur (感谢评论区另一个大佬推荐的安装方法,更加快捷方便,文章后面还有其他注意问题) 点开左侧

    2024年02月02日
    浏览(30)
  • VScode配置verilog环境(代码补全,报错,波形仿真)

    在win11的系统里,ise软件不能运行,而在虚拟机中ise的配置也很费劲,今天在这里教大家在VScode中玩转Verilog。 实现代码补全、代码高亮、错误检查 实现生成Testbench 实现波形仿真 iverilog(自带gtkwave)、ctags.exe 所需配置文件 官方下载网址 (速度较慢) iverilog:Icarus Verilog for Windows

    2024年01月16日
    浏览(37)
  • clangd的使用,实现跳转提示

    一、插件卸载c插件下载clangd 二、设置搜索clangd 若没有找到compile_commands.json文件可以通过如下方式之后再便于即可生成 cmake项目: 在项目最顶层的.cmake文件中或者CMakeList文件中加入如下命令 或者 makefile项目: ①安装bear ② 编译时用 若后面突然失灵了 找到/home/xuerui/.vscode-s

    2024年02月10日
    浏览(32)
  • VScode clangd 插件浏览 linux 源码

    VScode clangd 插件浏览代码却决于 compile_commands.json 文件 生成该文件有很多种方法 bear 命令 linux 内核脚本 cmake 编译选项 VScode 插件安装 在 VScode 插件商城搜索安装即可 clangd 安装 方法一 插件下载好之后任意打开一个 C/CPP 文件,vscode 下方会出现弹窗直接 install 即可(若网络原因

    2024年02月06日
    浏览(45)
  • VSCode使用clangd构建Linux驱动开发环境

    最初在使用Linux内核源码进行驱动开发时,由于没有代码补全、自动提示等功能写起来十分不方便,虽然有人使用Source Insight来阅读源码,但是我用起来还是感觉怪怪的,有时间同一个函数会找到很多的定义,不便判断。在调用层次方面,还是clangd更好用。 Clangd 是一个基于

    2024年01月16日
    浏览(56)
  • 使用VScode + clangd 阅读 c/c++ 源码环境搭建

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

    2024年02月10日
    浏览(42)
  • VScode 结合clangd 构建linux源代码阅读环境

    上一篇文章:VScode 结合Global构建linux源代码阅读环境 ,介绍了在VS Code工具中通过remote-ssh远程登陆到Linux远程服务器,使用Global构建linux源代码阅读环境,对linux kernel代码进行解析,实现全局搜索、自动跳转、代码补全等功能,但是Global工具在建立代码索引数据时,将整个Li

    2023年04月16日
    浏览(38)
  • 【vscode基于clangd实现Android/Linux代码跳转】

    背景: 在开发大型工程例如Android或Linux时若我们使用vscode搭配官方的C/C++插件使用发现,经常很多代码都无法跳转,代码补全功能几乎是废的,通过网友以及同事身边了解之后发现 vscode+clangd可以实现代码任意跳转补全等功能 ,因此本文通过讲解如何配置clangd相关环境实现高

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

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

    2024年02月02日
    浏览(31)
  • VSCode C/C++无法跳转到定义(又是你 clangd !)

    原博客:VSCode C/C++无法跳转到定义、自动补全、悬停提示功能_c/c++:edit configurations(json)-CSDN博客  我在此基础上加一点: 首先确保自己有这个插件: 点击 齿轮⚙ 符号,进入 配置设置,找到 把 C_cpp : Intelli Sense Engine 的内容设置为 default  如果设置不了,那就吧clangd这个扩展禁

    2024年02月21日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包