CUDA源文件的扩展名为.cu。头文件得到什么?

CUDA源文件的扩展名为.cu。头文件得到什么?,cuda,header-files,file-extension,Cuda,Header Files,File Extension,标准约定似乎是给CUDA源代码文件一个.cu扩展名,以区别于扩展名为.C的C文件。CUDA特定头文件的相应约定是什么?有吗?没有-只需对头文件使用.h。CUDA源文件有一个不同的后缀,以便于确保使用正确的编译器编译构建中的各种源文件(想想makefile规则)。一些人(包括CUDA SDK)使用.cuh作为CUDA头文件,如果在头文件中包含设备代码,这可能会有所帮助。然而,头文件的扩展名并没有特别的意义(与源文件不同,源文件决定使用哪个编译器),所以我个人坚持使用.h谢谢!在某些情况下,我确实在

标准约定似乎是给CUDA源代码文件一个
.cu
扩展名,以区别于扩展名为
.C
的C文件。CUDA特定头文件的相应约定是什么?有吗?

没有-只需对头文件使用
.h
。CUDA源文件有一个不同的后缀,以便于确保使用正确的编译器编译构建中的各种源文件(想想makefile规则)。

一些人(包括CUDA SDK)使用
.cuh
作为CUDA头文件,如果在头文件中包含设备代码,这可能会有所帮助。然而,头文件的扩展名并没有特别的意义(与源文件不同,源文件决定使用哪个编译器),所以我个人坚持使用
.h

谢谢!在某些情况下,我确实在头文件中有设备代码,我想在文件扩展名中明确这一点,这样人们就不会将其包含在非CUDA源文件中,因此.cuh听起来是正确的答案。(这也是一个区分C++和HPP头与C H的环境,所以有本地的先例),否则,是的,H是有意义的。当你使用Eclipse的Linux版本时,包含文件的扩展是非常重要的。使用扩展名
.h
时,Eclipse无法正确格式化内容。我有这个问题差不多两年了,直到我意识到它可能是由于一个错误的扩展。将扩展名更改为
.cuh
解决了我的问题,Eclipse现在终于正确格式化了include文件。汤姆先生:-)在我看来,对具有CUDA特定代码的头使用不同的扩展是一个好习惯。这样,你就可以避免人们试图将它们包含在常规C++文件中。