使用vim进行c项目开发时,使用Coc-Clangd作为语言服务器实现自动补全。当对项目结构进行调整后(.h和.c文件分离到了不同的目录),Coc-Clangd需要一定的配置才能找到相关的.h文件,否则会出现错误:

'*.h' file not found
[clang: pp_file_not_found]

具体需要在项目根目录生成compile_commands.json文件或者compile_flags.txt文件:

  1. 当使用cMake时,可以运行cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1生成compile_commands.json
  2. 当使用make时,需要安装Bear(apt等包管理即可安装)。运行make clean && bear make即可生成compile_commands.json
  3. 对于其它情况(只使用clang,没有构建工具和make)时。可以创建compile_flags.txt文件参考2进行相关配置。

参考

  1. ProgrammAbel (u/ProgrammAbel) – Reddit
  2. Getting started with clangd — Extra Clang Tools 8 documentation (llvm.org)
最后修改日期: 2021-11-20