我曾经使用 VSCode C/C++ 扩展。这个扩展中有一个特性(在一个 json 文件中),称为“includePath”,我可以为我的头文件设置路径,所以在不执行 CMake 或 make 的情况下,我会从这些文件中获得我的头文件和代码完成的建议.
现在我已经切换到 neovim 和 clangd 作为代码完成的语言服务器。我搜索了很多以在 clangd 选项中找到相应的功能,但除了 这个链接 之外我找不到任何东西。
由于clangd是一个强大的语言服务器,我想知道它是否没有这样的功能。所以我想知道clangd中真的有这样的功能吗?如果是,我该如何使用它?
注意:我使用了一个名为 “coc-clangd” 的语言客户端。我不知道这是否重要。
原文由 AMIR REZA SADEQI 发布,翻译遵循 CC BY-SA 4.0 许可协议
Clangd 使用
compile_commands.json
数据库文件,其中包含项目中每个文件的标志(例如包含目录)。但是这个文件是自动生成的,所以对它的所有修改最终都会被覆盖。您可以要求 CMake 使用-DCMAKE_CXX_FLAGS
命令行参数添加任何自定义编译标志。系统标头示例(
#include <file.h>
):对于项目标题(
#include "file.h"
):此外,您可以设置
CXXFLAGS
环境变量:之后,新标志应该出现在您的
compile_commands.json
文件中。