ubuntu系统vscode配置clangd

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

clangd 是 Clang 的官方语言服务器,用于提供 C++ 代码导航、补全和静态分析功能。语言服务器是一种通信协议,它允许编辑器和集成开发环境(IDE)与编程语言的分析和处理工具进行交互,从而提供更强大的代码编辑和开发功能。
具体来说,clangd 提供了以下主要功能:

  1. 代码导航: clangd 可以根据代码的结构和语义,提供跳转到定义、查找引用、查看类型层次结构等导航功能。这使得开发者能够更轻松地在代码中进行导航,了解代码之间的关系。
  2. 代码补全: clangd 可以在编辑器中为开发者提供智能的代码补全建议。它可以根据上下文、类型信息和代码规则,推荐可能的代码补全选项。
  3. 静态分析: clangd 使用 Clang 的强大静态分析引擎,可以检测代码中的潜在错误、代码规范问题和性能优化机会。这有助于提高代码质量和可维护性。
  4. 重构支持: clangd 可以识别代码重构的机会,并提供对重构操作的支持。这包括重命名、提取函数、内联变量等操作。
  5. 快速响应: clangd 的设计目标之一是快速响应用户的操作。它使用了一些高效的技术,如后台索引和增量解析,以提供即时的代码导航和补全。
  6. 多平台支持: clangd 可以在多个平台上运行,并且与各种编辑器和 IDE 集成,如 Visual Studio Code、Visual Studio、Sublime Text 等。
    总之,clangd 是一个强大的工具,为 C++ 开发者提供了丰富的代码编辑和分析功能。它可以大大提高开发效率,并帮助开发者编写更可靠的代码。

vscode配置clangd

将 clangd 与 Visual Studio Code 结合使用可以为 C++ 开发提供强大的代码导航、补全和静态分析功能。以下是如何将 clangd 集成到 Visual Studio Code 的一般步骤:

  1. 安装 clangd: 首先,确保已经安装了 clangd。你可以使用包管理器(如 apt、brew 等)来安装。例如,在 Ubuntu 上,你可以运行以下命令来安装:sudo apt install clangd-10
    建议直接从github下载安装好的clangd。github链接
    下载好的安装包解压后,将里面的bin和lib文件夹复制到/usr/local下。
    同时,安装好以下工具。sudo apt install bear llvm clang-tools

  2. 安装 Visual Studio Code: 略。

  3. 安装 C/C++ 扩展和clangd扩展: 在 Visual Studio Code 中,安装官方的 C/C++ 扩展以获得 C++ 开发支持。你可以在扩展市场中搜索并安装 “C/C++” 扩展和clangd扩展。注意这两个的智能提示不兼容,vscode会提示disabled c/c++的智能提示。~~或者通过命令行(ctrl+shift+p)打开用户设置的json(setting.json),将"C_Cpp.intelliSenseEngine"设置为"disabled"。~~或者直接右键C/C++插件选择Extention Settings,在最上面有一个C_Cpp: Autocomplete,改为disabled即可。

{
    "[python]": {
        "editor.formatOnType": true
    },
    "files.autoSave": "afterDelay",
    "workbench.colorTheme": "Better Solarized Dark",
    "cmake.configureOnOpen": true,
    "workbench.iconTheme": "material-icon-theme",
    "clangd.detectExtensionConflicts": false,
    "C_Cpp.intelliSenseEngine": "disabled",
    "chatgpt.lang": "en",
    "window.zoomLevel": 1
}
  1. 配置 clangd : 通过命令行打开工作区setting(json),生成.vscode目录下的工作区settings.json文件。以下为设置模板,可根据具体情况修改。
{
    // 指定 clangd 可执行文件的路径(如果在系统路径中可直接使用 "clangd""clangd.path": "clangd",

    // 作为编译失败的备选标志,指定了包含文件夹的路径
    "clangd.fallbackFlags": [
        "-I${workspaceFolder}/include"
    ],

    // 配置 clangd 启动参数
    "clangd.arguments": [
        "--background-index",        // 启用后台索引
        "--compile-commands-dir=${workspaceFolder}/build",  // 设置编译命令文件夹
        "--all-scopes-completion",   // 允许在所有作用域中进行代码补全
        "--completion-style=detailed",  // 详细模式的代码补全
        "--clang-tidy",              // 启用 Clang-Tidy 静态代码分析
        "--log=verbose",             // 输出详细的日志信息
        "--pretty"                   // 漂亮的输出格式
    ],

    // 配置 CMake 构建目录
    "cmake.buildDirectory": "${workspaceFolder}/build",

    // 配置 CMake 构建环境变量,使其生成编译命令数据库
    "cmake.buildEnvironment": {
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
    }
}
  1. 打开 C++ 项目,可以开始使用 clangd 提供的功能了。例如,当你打开一个 C++ 源文件时,clangd 将会在编辑器中提供智能的代码补全建议、定义跳转、引用查找等功能。

其它说明

cland能进行代码提示和跳转,首先是开了一个cland服务器,一个重要文件就是compile_commands.json。这是通过make和cmake编译的时候生成的。

  1. 以cmake为例,最重要的就是设置CMAKE_EXPORT_COMPILE_COMMANDS为ON,可以像上面settings.json里面设置,也可以通过CMakeLists.txt文件里set(CMAKE_EXPORT_COMPILE_COMMANDS ON)。也可以在cmake命令时设置cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON path/to/source。三种方法选一个就可以了。
    在设置了 CMAKE_EXPORT_COMPILE_COMMANDS 后,当你执行 CMake 构建时,CMake 会生成 compile_commands.json 文件,其中包含了项目的详细编译命令。请确保在项目构建之前添加或更新了这个选项。一旦设置了 CMAKE_EXPORT_COMPILE_COMMANDS 为 ON,CMake 将在构建过程中生成 compile_commands.json 文件,并且你可以将这个文件传递给需要使用这些编译命令的工具,如 clangd。
  2. 如果是Makefile构建的工程,可以使用bear工具帮助。通过sudo apt install bear安装bear,在编译的时候bear make就可以生成compile_commands.json 文件。
  3. 在cmake工程中,如果需要打断点进行调试,最好是安装CMake和CMake Tools插件,然后打开命令行使用CMake:ConfigureCMake:Build进行编译。如果在终端直接进行编译的话,有可能导致打断点失败,或者打了断点不起作用。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值