
ubuntu系统vscode配置clangd
本文讲述在ubuntu系统下vscode配置clangd进行c/c++代码提示和跳转的具体方法,对于其它平台也是个参考
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
clangd 是 Clang 的官方语言服务器,用于提供 C++ 代码导航、补全和静态分析功能。语言服务器是一种通信协议,它允许编辑器和集成开发环境(IDE)与编程语言的分析和处理工具进行交互,从而提供更强大的代码编辑和开发功能。
具体来说,clangd 提供了以下主要功能:
- 代码导航: clangd 可以根据代码的结构和语义,提供跳转到定义、查找引用、查看类型层次结构等导航功能。这使得开发者能够更轻松地在代码中进行导航,了解代码之间的关系。
- 代码补全: clangd 可以在编辑器中为开发者提供智能的代码补全建议。它可以根据上下文、类型信息和代码规则,推荐可能的代码补全选项。
- 静态分析: clangd 使用 Clang 的强大静态分析引擎,可以检测代码中的潜在错误、代码规范问题和性能优化机会。这有助于提高代码质量和可维护性。
- 重构支持: clangd 可以识别代码重构的机会,并提供对重构操作的支持。这包括重命名、提取函数、内联变量等操作。
- 快速响应: clangd 的设计目标之一是快速响应用户的操作。它使用了一些高效的技术,如后台索引和增量解析,以提供即时的代码导航和补全。
- 多平台支持: clangd 可以在多个平台上运行,并且与各种编辑器和 IDE 集成,如 Visual Studio Code、Visual Studio、Sublime Text 等。
总之,clangd 是一个强大的工具,为 C++ 开发者提供了丰富的代码编辑和分析功能。它可以大大提高开发效率,并帮助开发者编写更可靠的代码。
vscode配置clangd
将 clangd 与 Visual Studio Code 结合使用可以为 C++ 开发提供强大的代码导航、补全和静态分析功能。以下是如何将 clangd 集成到 Visual Studio Code 的一般步骤:
-
安装 clangd: 首先,确保已经安装了 clangd。你可以使用包管理器(如 apt、brew 等)来安装。例如,在 Ubuntu 上,你可以运行以下命令来安装:
sudo apt install clangd-10
建议直接从github下载安装好的clangd。github链接
下载好的安装包解压后,将里面的bin和lib文件夹复制到/usr/local下。
同时,安装好以下工具。sudo apt install bear llvm clang-tools
-
安装 Visual Studio Code: 略。
-
安装 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
}
- 配置 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"
}
}
- 打开 C++ 项目,可以开始使用 clangd 提供的功能了。例如,当你打开一个 C++ 源文件时,clangd 将会在编辑器中提供智能的代码补全建议、定义跳转、引用查找等功能。
其它说明
cland能进行代码提示和跳转,首先是开了一个cland服务器,一个重要文件就是compile_commands.json。这是通过make和cmake编译的时候生成的。
- 以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。 - 如果是Makefile构建的工程,可以使用bear工具帮助。通过
sudo apt install bear
安装bear,在编译的时候bear make
就可以生成compile_commands.json 文件。 - 在cmake工程中,如果需要打断点进行调试,最好是安装CMake和CMake Tools插件,然后打开命令行使用
CMake:Configure
和CMake:Build
进行编译。如果在终端直接进行编译的话,有可能导致打断点失败,或者打了断点不起作用。
更多推荐
所有评论(0)