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

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 社区论坛中搜索类似的问题或提交新的问题。

 类似资料:
  • 找软件公司开发的游戏项目快到测试阶段了,第一次乙方合作,有点担心质量问题,在想要不要找第三方来做个项目检测,但是第三方检测就靠谱吗?

  • 本文向大家介绍requestAnimationFrame,请问是怎么使用的?相关面试题,主要包含被问及requestAnimationFrame,请问是怎么使用的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: requestAnimationFrame() 方法告诉浏览器您希望执行动画并请求浏览器在下一次重绘之前调用指定的函数来更新动画。该方法使用一个回调函数作为参数,这个回调函数会在浏

  • 就是我想以游客的形式访问其他页面,但是我不登陆就没法访问其他页面,有人知道怎么处理么? 基于的yudao-ui-admin-vben这个框架开发的,想将默认加载的登录页换成首页,以游客的方式进行访问部分页面

  • 这是我的axios依赖: 这是我的代码 这段代码有什么问题么?请求并不会取消

  • 问题描述 vue3 项目开启 gzip后,文件报错

  • 本文向大家介绍React 使用browserHistory项目访问404问题解决,包括了React 使用browserHistory项目访问404问题解决的使用技巧和注意事项,需要的朋友参考一下 最近项目里面用到了React但是发布到iis站点之后,路由地址 刷新访问直接404错误。查阅资料之后发现是iis缺少配置URL重写 的问题导致的。下面我们来图形化配置,简单的配置下IIS 打开IIS使用

  • 要求你写一份关于以下算法问题的报告:这道题要求你在一组真币中找出一个假币。这枚假硬币之所以能被找到,是因为它和其余的真硬币的重量不一样。不是轻了就是重了,只是你事先不知道。你要做决定的唯一方法是一个经典的带有两个托盘的天平秤。你可以把一个或多个硬币放在一个托盘上,一个相似的数字放在另一个托盘上,并确定哪个托盘有较轻的一堆。例如,如果你只有三个硬币,那么拿硬币1和硬币2称重。如果天平平衡,那么硬币3

  • 我试图用PUT请求调用REST API,但收到400个错误代码(错误请求)。有人能看出我做错了什么吗? 我已经用REST客户端成功调用了这个API,下面是使用的头和主体: https://imgur.com/dZVyawnhttps://imgur.com/lMtn2JB 错误400收到错误请求响应