cuda 模板函数问题

请问 我在 cu文件中写的模板函数 ,在cpp 文件中去调用,为什么会出现链接错误,如果是非模板函数,就没有问题。

比如,在 .cu文件中写了
template
void test(T* t){
return;
}

cpp 文件中调用:
float* t;
test(t);

就会出现如下错误:
error LNK2019: 无法解析的外部符号 “void __cdecl test(float *)” (??$test@M@@YAXPAM@Z),该符号在函数XX中被引用。
而如果去掉模板定义,就没有问题。why ?

LZ您好:

我不是C++用户,暂时无法为您解答此问题,唯一能做出的建议是,请参阅CUDA C Programming Guide Appendix.D——C/C++ Language Support。

请其他网友/斑竹/总版主/NV原厂支持人员予以补充。

祝您编码顺利~

我也不懂C++,不过,楼主在cpp文件中调用.cu的test函数时候,在.cpp文件中写函数声明了?
比如:
extern tmplete void test(T *t);
或许C++真的不需要函数先声明再使用?

抱歉,我不是C++用户。这个真心无法回答。

建议其他会员、版主、NVIDIA官方支持以及总版主中,喜欢C++的亲们为您解答。