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
扩展名)。如何让文本突出显示在头文件上工作?
解决方案
在您的项目目录中创建一个配置文件“.clangd”并指定 CUDA 标头的位置。这对我有用。
CompileFlags:
Add:
- -xc++
- --cuda-path=/path_to_cuda_installation
- --cuda-gpu-arch=sm_52
- -I/path_to_cuda_installation/include
推荐阅读
- spring-boot - Javers 不回滚事务
- multipartform-data - 加特林。如何在没有文件的情况下发送 POST multipart/form-data
- scala - 计算Scala中数组的平均值 - 结果被截断
- bash - 将命令的输出分配给变量的问题
- python - 计算日期之间的天数,使用 pyspark 忽略周末
- java - 执行命令行等效于 Runtime.getRuntime().exec(cmd); 在 JNI C 中
- c# - 通过将对象列表与另一个列表进行比较,从对象列表中删除条目
- javascript - 拖放元素时HTML拖放api不起作用(反应)
- python-3.x - 拆分涉及括号的字符串,同时保留括号
- openshift - Maven / Fabric8 - 针对远程 OpenShift 安装构建 OpenShift 容器映像