当我配置新的lsp时,我遇到了一个问题。我的lsp客户端是,clangd是我的lsp服务器。这是我的clangd设置参数
require('lspconfig')['clangd'].setup {
on_attach = on_attach,
flags = {
-- This will be the default in neovim 0.7+
debounce_text_changes = 150,
},
capabilities = capabilities,
cmd = {
'clangd',
'--background-index',
'--query-driver="/app/vbuild/RHEL7-x86_64/clang/latest/bin/clang, \
/app/vbuild/RHEL7-x86_64/clang/latest/bin/clang++, \
/app/vbuild/RHEL7-x86_64/gcc/latest/bin/gcc, \
/app/vbuild/RHEL7-x86_64/gcc/latest/bin/g++"',
'--clang-tidy',
'--all-scopes-completion',
'--cross-file-rename',
'--completion-style=detailed',
'--header-insertion-decorators',
'--header-insertion=iwyu',
'--pch-storage=memory',
'--enable-config',
'--log=verbose'
},
filetypes = {"c", "cpp", "objc", "objcpp"}
}以及我的g++和clangd版本如下
g++ (GCC) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
clangd version 14.0.0
Features: linux
Platform: x86_64-unknown-linux-gnu同时,我在CPATH中添加了以下包含路径
setenv CPATH "/app/vbuild/RHEL7-x86_64/gcc/latest/include/c++/10.3.0:/app/vbuild/RHEL7-x86_64/glibc/2.33/include"
setenv CPATH "/app/vbuild/RHEL7-x86_64/clang/latest/include/clang-c:/app/vbuild/RHEL7-x86_64/clang/latest/include/llvm-c:$CPATH"但我仍然在我的新思想中发现了这些错误
似乎clangd找不到相关的stl头。但我在$CPATH中检查了包含路径。它确实有stl头。有人知道如何解决这个问题吗?谢谢
发布于 2022-07-19 05:15:37
在查完响声日志之后。我想这是和https://github.com/clangd/clangd/issues/1100一样的问题
发布于 2022-07-05 03:43:01
如果编译器是g++,则clangd需要g++的驱动程序来查找std库。
发布于 2022-07-08 06:25:36
很难确定这是否是在没有看到克拉格原木的情况下出现的问题,但一个潜在的问题是,--query-driver的参数是一个regex,它与来自compile_commands.json命令的编译器可执行文件路径相匹配。
我不认为您正在传递的以逗号分隔的路径列表是有效的正则表达式。为了匹配这四个可执行文件,您可能需要使用更宽松的正则表达式(如/app/vbuild/RHEL7-x86_64/*/latest/bin/* ),或者使用替代语法(如(clang|gcc)等)。
https://stackoverflow.com/questions/72556628
复制相似问题