首页 > 解决方案 > 如何在头文件上使用带有 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扩展名)。如何让文本突出显示在头文件上工作?

标签: cudaclangclangd

解决方案


在您的项目目录中创建一个配置文件“.clangd”并指定 CUDA 标头的位置。这对我有用。

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

推荐阅读