首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >clangd中有"includePath“选项吗?

clangd中有"includePath“选项吗?
EN

Stack Overflow用户
提问于 2020-04-14 19:32:32
回答 2查看 6.2K关注 0票数 2

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

现在我切换到了neovim和clangd作为代码完成的语言服务器。我搜索了很多次,想在clangd选项中找到对应的特性,但除了this link之外,我找不到更多的东西。

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

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

EN

回答 2

Stack Overflow用户

发布于 2021-04-22 14:12:58

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

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

代码语言:javascript
运行
复制
cmake -DCMAKE_CXX_FLAGS="-isystem /path/to/includes" /path/to/source

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

代码语言:javascript
运行
复制
cmake -DCMAKE_CXX_FLAGS=-Ipath/to/includes /path/to/source

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

代码语言:javascript
运行
复制
export CXXFLAGS="-isystem /path/to/includes"
cmake path/to/sources

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

票数 3
EN

Stack Overflow用户

发布于 2021-09-21 12:46:26

也许这是有用的:https://clangd.llvm.org/config

在源目录的顶层创建一个名为'.clangd‘的文件。添加这些内容。

代码语言:javascript
运行
复制
CompileFlags: # Tweak the parse settings
  Add: 
    - "-I=[folder]"

但我认为这是不推荐的,所有包含目录都应该添加到CMakeLists.txt文件中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61206703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档