当前位置: 首页 > 知识库问答 >
问题:

vim+coc.nvim+ccls问题,请问对于以下项目,我怎么使用?

濮俭
2024-06-22

vim+coc.nvim+ccls问题?
请问对于以下项目,我怎么使用?

项目名:test

结构:

~/test

~/include/test.h

~/test.cpp

直接.cpp连接include下的test.h,ccls报错,clang能正常编译

共有1个答案

金飞翼
2024-06-22

对于使用 vim + coc.nvim + ccls 配置的项目,如果你遇到了 ccls 报错而 clang 能正常编译的情况,可能是因为 ccls 没有正确配置项目的包含路径。

首先,确保你的 ccls 配置文件(通常是 .ccls 或者在项目根目录下的 compile_commands.json)包含了正确的包含路径。对于你的项目结构,你可能需要在 ccls 的配置中指定 ~/include 作为包含目录。

下面是一个简单的 .ccls 配置文件示例,用于你的项目结构:

{    "compileCommands": "${workspaceFolder}/compile_commands.json",    "includePath": [        "${workspaceFolder}",        "${workspaceFolder}/include"    ],    "defines": [],    "cStandard": "c11",    "cppStandard": "c++17",    "intelliSenseMode": "gcc-x64"}

将上述内容保存为 .ccls 文件,并放置在项目的根目录(~/test)中。

如果你没有 compile_commands.json 文件,你可能需要手动指定 includePath。在上述配置中,${workspaceFolder}vim 当前工作区的路径,即你的项目根目录。${workspaceFolder}/include 指向了你的 include 目录。

确保你的 vim 配置也正确地加载了 coc.nvimccls 插件,并且 coc.nvim 能够读取 .ccls 配置文件。

如果你已经有了 compile_commands.json,确保该文件是由正确的构建系统生成的,并且包含了 include 目录的路径。在大多数情况下,这个文件是由 CMakeBear 等工具生成的。

如果你依然遇到问题,请检查以下几点:

  1. 确保 ccls 插件在 vim 中正确安装并启用。
  2. 检查 ccls 插件的日志输出,看是否有更详细的错误信息。
  3. 确保 clangccls 使用的是相同版本的编译器和库。

最后,如果你依然无法解决问题,可以考虑在 ccls 的 GitHub 仓库或者 Vim 社区论坛中搜索类似的问题或提交新的问题。

 类似资料: