如何让clangd支持makefile工程


概述

使用cmake的时候用vscode带的ninja进行build的时候会自动生成compile_commands.json,一切都是自动化的,此时clangd就能通过compile_commands.json知道我们工程自定义的头文件和源文件位置在哪,同时也就没有烦人的红波浪线,但是如果我们使用的是make呢?

CMake

CMake维护的工程生成json文件非常简单。

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .

Makefile

很多工程并不会使用CMake维护,同时它们的Makefile可读性比较差,但是目前我们关键是让clangd不会再报错,问题就转化成了如何生成compile_commands.json。这里可以使用Bear工具生成json文件:

bear

ubuntu下可以这样操作

sudo apt install bear
bear bear -- make -j8(或者其他参数)

这样就会bear就会拦截make命令,自动在所有目录生成compile_commands.json,同时我们的clangd也不会再报错了,可喜可贺。


文章作者: JoyTsing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 JoyTsing !
评论
  目录