问题标签 [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.
cmake - 在 CMAKE 的 compiler_commands.json 中强制使用非 POSIX 路径
我正在使用cmake.exe
MSYS2 附带的来创建我的构建文件并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++ 库。但是,分析工作正常。
neovim - 如何让 clangd 使用诊断标志?
我正在尝试clangd
使用 Neovim 内置的 LSP Config 进行设置,它工作正常。问题是,通常我用标志编译所有东西,在分析代码并提示错误时-Wall -Wextra -Werror
如何使用这些标志?clangd
提前致谢 :)
c - 让 clangd 知道编译器给出的宏
我有两个从同一源(客户端和服务器)构建的可执行文件,它们是使用-D CLIENT=0 -D SERVER=1
服务器和-D CLIENT=1 -D SERVER=0
客户端的编译选项构建的。如果我做类似的事情
clangd 抱怨 CLIENT 没有定义。有没有办法让 clangd 知道这些宏?(代码编译得很好,错误来自clangd
,而不是编译器)
c++ - Visual Studio 代码重命名标题
任何人都知道如何在 vscode 中重命名头文件,以便相应地更新头文件的所有包含?
例如,如果我将 Header0.h 重命名为 Header1.h,则所有包含都将从
至
也欢迎使用扩展
c++ - clangd LSP 服务器无法识别“内存”文件
我正在开发一个 c++ 项目并在 Spacemacs 中使用 clangd LSP 服务器。我正在处理的文件的第一行说#include "somefile.hpp"
lsp 服务器给出错误信息
在包含的文件中:找不到“内存”文件 [pp_file_not_found]。发出太多错误,现在停止 [fatal_too_many_errors]
它可能与“some file.hpp”本身无关,但更多的是一个基本问题。我不知道如何解决这个问题。提前致谢!
c++ - Clangd 代码完成不适用于 VS Code 中的 IPP (TPP) 文件
当我按照此处的建议将模板类定义分为 HPP 文件和 IPP (TPP) 文件时,我无法利用clangd提供的代码完成功能。有没有办法“通知”IPP(TPP)文件有关其相应头文件的信息?
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
实用程序生成
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。我不知道为什么熊不能正常工作。
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
扩展名)。如何让文本突出显示在头文件上工作?
macos - 如何在 Mac 上安装 clangd(最好使用 homebrew)
又是一个“如何在 Mac 上安装 clangd”的问题。到目前为止我所做的是brew install llvm
,所以较旧的答案(和clangd 网站)说应该已经安装了 clangd。但在当前版本中,情况似乎并非如此。clangd 不在我的路径中,我查看的所有文件夹都没有该二进制文件。
我找到了这些答案(它们都不起作用):
放入
/usr/local/opt/llvm/bin/
你的路径。我假设安装 llvm 应该已经创建了该目录,但它不存在。(链接到stackoverflow问题)在其他文件夹中找到 clangd(运行
find /usr/local/ -name 'clangd'
)。这没有结果(链接到超级用户问题)在安装 llvm 时使用
--with-toolchain
homebrew 的标志。错误:无效选项:--with-toolchain
在安装 llvm 时使用
--with-clang
homebrew 的标志错误:无效选项:--with-clang
所以我的问题是:
- 截至 2021 年 8 月,如何在 macbook 上安装 clangd?
- 我真的必须从源代码手动构建所有内容吗?
更多信息:
这是 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
?