问题标签 [clangd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

cmake - 在 CMAKE 的 compiler_commands.json 中强制使用非 POSIX 路径

我正在使用cmake.exeMSYS2 附带的来创建我的构建文件并compile_commands.json使用set(CMAKE_EXPORT_COMPILE_COMMANDS ON). 问题是生成的路径compile_commands.json是安装在 Windows 上的 Clang 语言服务器无法使用的 POSIX 路径。

更具体地说,它使用绝对路径,例如/c/users/admin/...,每次生成新的构建文件时,我都必须将它们更改为c:/users/admin/....

有没有办法让 CMake 在该文件中生成非 POSIX 路径,或者让它使用相对路径?我尝试使用通过 MinGW 安装的 Clang,但是当我尝试编译时找不到任何标准 C++ 库。但是,分析工作正常。

0 投票
2 回答
226 浏览

neovim - 如何让 clangd 使用诊断标志?

我正在尝试clangd使用 Neovim 内置的 LSP Config 进行设置,它工作正常。问题是,通常我用标志编译所有东西,在分析代码并提示错误时-Wall -Wextra -Werror如何使用这些标志?clangd

提前致谢 :)

0 投票
1 回答
269 浏览

c - 让 clangd 知道编译器给出的宏

我有两个从同一源(客户端和服务器)构建的可执行文件,它们是使用-D CLIENT=0 -D SERVER=1服务器和-D CLIENT=1 -D SERVER=0客户端的编译选项构建的。如果我做类似的事情

clangd 抱怨 CLIENT 没有定义。有没有办法让 clangd 知道这些宏?(代码编译得很好,错误来自clangd,而不是编译器)

0 投票
0 回答
111 浏览

c++ - Visual Studio 代码重命名标题

任何人都知道如何在 vscode 中重命名头文件,以便相应地更新头文件的所有包含?

例如,如果我将 Header0.h 重命名为 Header1.h,则所有包含都将从

也欢迎使用扩展

0 投票
0 回答
90 浏览

c++ - clangd LSP 服务器无法识别“内存”文件

我正在开发一个 c++ 项目并在 Spacemacs 中使用 clangd LSP 服务器。我正在处理的文件的第一行说#include "somefile.hpp"

lsp 服务器给出错误信息

在包含的文件中:找不到“内存”文件 [pp_file_not_found]。发出太多错误,现在停止 [fatal_too_many_errors]

它可能与“some file.hpp”本身无关,但更多的是一个基本问题。我不知道如何解决这个问题。提前致谢!

0 投票
0 回答
72 浏览

c++ - Clangd 代码完成不适用于 VS Code 中的 IPP (TPP) 文件

当我按照此处的建议将模板类定义分为 HPP 文件和 IPP (TPP) 文件时,我无法利用clangd提供的代码完成功能。有没有办法“通知”IPP(TPP)文件有关其相应头文件的信息?

0 投票
0 回答
76 浏览

c++ - coc-clangd 与 gtkmm-4.0 存在问题

我有文档中的 hello world 程序gtkmm。我可以使用以下方法编译程序而不会出现任何问题:

但是一进入neovim,coc-clangd就报错了:

这发生在#include "gtkmm/application.h"

:CocInfo

叮当是12.0.0

PS:我确实有一个 compile_commands.json 文件,使用intercept-build实用程序生成

0 投票
0 回答
121 浏览

arm - 如何为 arm 项目构建 compile_commands.json

coc.nvim/coc-clangd在 vim 中使用来阅读我的项目源代码。

如果将compile_commands.json提供给 clang ,我看到 clang 可以工作。

我可以使用armcc在我的ubuntu env中编译项目,所以我尝试使用bear来制作compile_commands。

但它报道了

ERROR: ld.so: object '/usr/${LIB}/bear/libear.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

我可以在 /usr/lib/x86_64-linux-gnu/bear/ 中找到 libear.so。我不知道为什么熊不能正常工作。

0 投票
1 回答
116 浏览

cuda - 如何在头文件上使用带有 CUDA 的 clangd 文本突出显示

我正在运行带有 clangd 扩展的 VSCodium,并且我希望有适当的 CUDA 突出显示(例如__device____host__可以理解关键字)。我运行 CMake 来生成compile_commands.json文件,它包含 CUDA 特定的关键字(例如--cuda-gpu-arch=sm_52, --cuda-path=/usr/local/cuda)。但是,clangd 仍然给我 CUDA 特定关键字的波浪线下划线。看起来如果clangd 只是使用clang 编译器来理解源代码,那么clangd 应该与CUDA 一起使用(假设clang 能够编译CUDA 代码)。

那么,有没有办法让clangd 为CUDA 工作?如果是这样,我该如何通过 VSCodium 做到这一点?

编辑:事实证明,CUDA 代码突出显示适用于直接链接的文件(带有.cu扩展名),但不适用于包含的头文件之一(带有.hpp扩展名)。如何让文本突出显示在头文件上工作?

0 投票
1 回答
776 浏览

macos - 如何在 Mac 上安装 clangd(最好使用 homebrew)

又是一个“如何在 Mac 上安装 clangd”的问题。到目前为止我所做的是brew install llvm,所以较旧的答案(和clangd 网站)说应该已经安装了 clangd。但在当前版本中,情况似乎并非如此。clangd 不在我的路径中,我查看的所有文件夹都没有该二进制文件。

我找到了这些答案(它们都不起作用):

所以我的问题是:

  1. 截至 2021 年 8 月,如何在 macbook 上安装 clangd?
  2. 我真的必须从源代码手动构建所有内容吗?

更多信息:

  • 这是 M1 Macbook

  • 我在以下位置找到了一个 clangd 可执行文件/opt//homebrew/Cellar/llvm/12.0.1/bin/clangd

  • 运行brew info llvm结果包含一条消息

    如果您需要在 PATH 中首先包含 llvm,请运行:
    echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc

    在那个文件夹中,我也找到了一个 clangd 可执行文件,所以我想我应该将它添加到我的路径中,而不是/usr/local/opt/llvm/bin?