clangd 中是否有“includePath”选项?

新手上路,请多包涵

我曾经使用 VSCode C/C++ 扩展。这个扩展中有一个特性(在一个 json 文件中),称为“includePath”,我可以为我的头文件设置路径,所以在不执行 CMake 或 make 的情况下,我会从这些文件中获得我的头文件和代码完成的建议.

现在我已经切换到 neovim 和 clangd 作为代码完成的语言服务器。我搜索了很多以在 clangd 选项中找到相应的功能,但除了 这个链接 之外我找不到任何东西。

由于clangd是一个强大的语言服务器,我想知道它是否没有这样的功能。所以我想知道clangd中真的有这样的功能吗?如果是,我该如何使用它?

注意:我使用了一个名为 “coc-clangd” 的语言客户端。我不知道这是否重要。

原文由 AMIR REZA SADEQI 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

Clangd 使用 compile_commands.json 数据库文件,其中包含项目中每个文件的标志(例如包含目录)。但是这个文件是自动生成的,所以对它的所有修改最终都会被覆盖。您可以要求 CMake 使用 -DCMAKE_CXX_FLAGS 命令行参数添加任何自定义编译标志。

系统标头示例( #include <file.h> ):

 cmake -DCMAKE_CXX_FLAGS="-isystem /path/to/includes" /path/to/source

对于项目标题( #include "file.h" ):

 cmake -DCMAKE_CXX_FLAGS=-Ipath/to/includes /path/to/source

此外,您可以设置 CXXFLAGS 环境变量:

 export CXXFLAGS="-isystem /path/to/includes"
cmake path/to/sources

之后,新标志应该出现在您的 compile_commands.json 文件中。

原文由 lufterd 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题