ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用 clangd 取代 cpptools 作为 vscode 的 C/C++ LSP

2022-02-01 20:33:24  阅读:233  来源: 互联网

标签:commands clangd vscode make bear json C++ cpptools


使用 clangd 取代 cpptools 作为 vscode 的 C/C++ LSP

起因

vscode 官方推荐的 C/C++ 插件是 cpptools,但是这个插件十分吃资源,并且容易崩溃。在网上看了一下,吐槽这个问题的并不是我一个人,遂决定换一个。经过一番比较,决定使用 clangd 来取代 cpptools 作为新的 C/C++ LSP。

我们直接在扩展里选择 clangd 安装并启用,这里注意 clangd 与 cpptools 存在冲突,所以首先要把 cpptools 卸载。

问题

接下来的问题是,clangd 需要有一个 compile_commands.json 文件才能工作,这一点是比不上之前的 cpptools 安装即用方便的。

解决方案

CMAKE 项目

对于 CMake 项目,比较简单,只需要定义 CMAKE_EXPORT_COMPILE_COMMANDS 即可导出该文件,这也是最容易的操作方案:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1

Makefile 项目

对于 Makefile 项目,官方并没有给出推荐的解决办法,这里我找到了两个解决办法:

  1. 一个是使用 bear
    一般Linux发行版都可以用自带包管理器安装,Ununtu下安装命令为:
sudo apt install bear

使用 bear 生成 compile_commands.json 时,只需要在原本的编译命令前添加 bear 前缀即可,如:

bear make -C src
  1. 另一种方式是使用python编写的工具 compiledb
    安装命令:
sudo pip install compiledb

使用方式同样是在原有make命令前添加 compiledb 前缀。特别的,只生成 compile_commands.json 不编译项目,可以使用 -n 选项:

compiledb -n make

参考博客

标签:commands,clangd,vscode,make,bear,json,C++,cpptools
来源: https://www.cnblogs.com/zhcpku/p/15859554.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有