Я пытаюсь использовать clangd для LSP в Neovim с файлами CUDA .cu, но он не может распознать стандартные функции библиотеки C++ на стороне хоста. Даже простые функции хоста, использующие std::format, std::chrono или std::cout, выдают такие ошибки, как:
Код: Выделить всё
No member named 'format' in namespace 'std'
Invalid operands to binary expression ('ostream' (aka 'int') and 'const char[18]')
static assertion failed: duration must be a specialization of std::chrono::duration
file.cu:
Код: Выделить всё
#include
#include
#include
int main() {
std::cout &1 | head -n 5
# Output shows /usr/include/c++/15.2.1/format is found
[*]Использовал --query-driver в настройке lspconfig:
Код: Выделить всё
cmd = { "clangd", "--query-driver=/usr/sbin/g++,/opt/cuda/bin/nvcc" }
Похоже, что ничего из вышеперечисленного не решило проблему.
Среда
- ОС: Arch Linux
- Версия clangd: 21.1.0
- Версия GCC: 15.2.1
- Набор инструментов CUDA: 13.0.88
- Архитектура графического процессора: sm_120 (NVIDIA Blackwell)
- Редактор: Neovim с nvim-lspconfig
Есть ли способ настроить clangd для правильного анализа кода C++ на стороне хоста в файлах .cu?
Подробнее здесь: https://stackoverflow.com/questions/798 ... lable-stdf
Мобильная версия