【vscode+clangd】clangd不起作用的解决方案、compile_commands.json文件为空的解决方案

配环境过程中出的问题多种多样,我的解决方案不一定对你适用,但不妨试试。


问题1:clangd不起作用

问题描述

在ubuntu22.04上安装了vscode,并安装了bear来生成compile_commands.json,到这里一切正常。

总之按照https://www.cnblogs.com/Rabbit-susu/p/18026009的方法安装,然后看到网上说clangd和微软的官方c/c++插件冲突,于是我卸载了微软的插件,发现clangd无效,鼠标悬停没有函数信息、也不能跳转到函数定义。

解决思路

查找资料(STFW)后,我发现网上没有任何一份教程提到安装clangd要先卸载官方c/c++插件,甚至在某些教程如https://blog.csdn.net/qq_38131812/article/details/127883517中,是先安装了官方插件,再在setting里禁用官方插件中和clangd冲突的功能。于是我想有没有可能clangd插件是需要官方c/c++插件才能用?

(这份视频教程https://www.bilibili.com/video/BV1184y117Uj也是先安装了官方插件,再在setting里禁用官方插件中和clangd冲突的功能。)

解决方案

把c/c++的官方插件下载回来,然后把https://blog.csdn.net/weixin_40209493/article/details/128175003文章中2.2.2部分的这几行按他的步骤加进去:

复制代码
{
    "C_Cpp.default.intelliSenseMode": "linux-gcc-arm",
    "C_Cpp.intelliSenseEngine": "Disabled",
    "clangd.path": "/home/book/clangd_13.0.0/bin/clangd",
    "clangd.arguments": [
        "--log=verbose",
    ],
}

注意这里的clangd.path填你自己的。

然后clangd就能用了。

问题2:compile_commands.json文件为空

我在配置bear的环境时已经卸载了vscode的官方cmake插件,发现bear插件输出的compile_commands.json为空,猜测它依赖cmake,于是在命令行里装了个cmake就好了。

相关推荐
忧虑的乌龟蛋5 分钟前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
I_Scholar1 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
Dddle11 小时前
C++:this指针
java·c语言·开发语言·c++
Johny_Zhao1 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm
稳联技术1 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷1 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
不見星空2 小时前
2025年第十六届蓝桥杯软件赛省赛C/C++大学A组个人解题
c语言·c++·蓝桥杯
jiunian_cn2 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio
梁下轻语的秋缘2 小时前
每日c/c++题 备战蓝桥杯(洛谷P1387 最大正方形)
c语言·c++·蓝桥杯
熬夜学编程的小王2 小时前
【C++进阶篇】多态
c++·多态·静态绑定与动态绑定