我希望我有一个简单的问题,但在这一天我无法解决,所以我请求你的帮助。
所以,我正在使用CUDA工具包在Visual Studio 2010中构建CUDA项目。
我的项目包含多个文件,其中最重要的三个是:
//tvector_traits_kernel.cu
//contains two fuctions, the first is cuda kernel, and the second is it`s wrapper, to call it in .cpp files
template < typename _T >
__ global __ void DaxpyKernel(lint64 _m, lint64 _na, lint64 _nb, _T *_amatr, _T *_bmatr, _T *_cmatr)
{
...
}
template < typename _T >
void DaxpyKernelWrapper(lint64 _m, lint64 _na, lint64 _nb, _T *_amatr, _T *_bmatr, _T *_cmat)
{
...
}
//tvector_traits_kernel.h
//contains wrapper fuction`s prototipe
template < typename _T >
void DaxpyKernelWrapper(lint64 _m, lint64 _na, lint64 _nb, _T *_amatr, _T *_bmatr, _T *_cmat);
//main.cpp
//it just calls DaxpyKernelWrapper fuction and includes tvector_traits_kernel.h
but while linking I have an error:
Error 3 error LNK2019: external symbol unresolved "void __cdecl DaxpyKernelWrapper<float>(__int64,__int64,__int64,float *,float *,float *)" (??$DaxpyKernelWrapper@M@@YAX_J00PAM11@Z) in functions "public: static void __cdecl CTVect_traits<float>::CudaBlockDaxpy(__int64,__int64,__int64,float *,float *,float *)" (?CudaBlockDaxpy@?$CTVect_traits@M@@SAX_J00PAM11@Z) C:\Users\ckhgjh\Documents\GPU\Tesis\Test\test.obj Test
我想知道为什么,因为&#34; tvector_traits_kernel.cu&#34;在项目s source files, it
中,目标文件已成功创建。
我是Visual Studio中的新手,之前我使用过gcc,所以我自己管理了链接过程。 所以我的问题可能非常愚蠢:(
感谢您的关注!