cuda头文件

cuda头文件,cuda,Cuda,我有一个名为“kerneletail.cu”的文件,如下所示 __device__ int add(int a, int b) { return a+b; } 我有我的主程序是“main.cu”。我需要从这里调用“add”函数。我该怎么做??下面的方法行不通 #include "KernelUtil.cu" __global__ void test() { int c = add(10,10); }

我有一个名为“kerneletail.cu”的文件,如下所示

     __device__ int add(int a, int b)
      {
         return a+b;
      }
我有我的主程序是“main.cu”。我需要从这里调用“add”函数。我该怎么做??下面的方法行不通

    #include "KernelUtil.cu"
     __global__ void test()
   {
      int c = add(10,10);
   } 
   int main()
      {
           test<<<1,1>>>();
      }
#包括“kerneletail.cu”
__全局无效测试()
{
int c=加(10,10);
} 
int main()
{
test();
}

在main.cu

中已经定义了一个错误添加,我希望您有一个自动编译所有
.cu
文件的规则,这意味着
kerneletail.cu
有效地编译了两次,一次是单独编译,一次是包含在
main.cu
中,因此
add
是重复的


尝试将
kerneletail.cu
重命名为
kerneletail.h
(或
.cuh
)。

您是否检查了
add
是否确实没有通过cuda.h在其他地方定义?据我所知,你所做的应该是可行的。也许为kerneletail.cu使用include防护也会有所帮助。