Как использовать подсветку текста clangd с помощью CUDA в заголовочных файлах

#cuda #clang #clangd

Вопрос:

Я запускаю VSCodium с расширением clangd, и я хотел бы иметь правильную подсветку 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 расширением). Как заставить подсветку текста работать с заголовочным файлом?

Комментарии:

1. Вопросы VSCodium не подходят для тегов VSCode.

Ответ №1:

создайте файл конфигурации «.clangd» в каталоге вашего проекта и укажите расположение заголовков CUDA. Это работает на меня.

 CompileFlags:   
Add:
    - -xc  
    - --cuda-path=/path_to_cuda_installation
    - --cuda-gpu-arch=sm_52
    - -I/path_to_cuda_installation/include