CUDA常见问题之无法在c文件中调用cu文件中定义的函数

时间:2022-12-14 16:06:28

当在C源文件中调用cu文件中定义的函数时,会出现undefined reference的问题,而在C++源文件中调用cu文件中定义的函数时则不会出现这个问题。

出现上述问题的原因是,nvcc编译器采用的是C++的编译规则,而C和C++对函数名的编译规则不同。

要解决上述问题,只需要在cu文件中定义的函数前加上extern "C"即可,这样nvcc编译器就会按照C的编译规则来编译该函数了。

由此我们需要谨记,cu文件类似于C++的源文件,而不是C的源文件。