概述
使用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也不会再报错了,可喜可贺。