当在C源文件中调用cu文件中定义的函数时,会出现undefined reference的问题,而在C++源文件中调用cu文件中定义的函数时则不会出现这个问题。
出现上述问题的原因是,nvcc编译器采用的是C++的编译规则,而C和C++对函数名的编译规则不同。
要解决上述问题,只需要在cu文件中定义的函数前加上extern "C"即可,这样nvcc编译器就会按照C的编译规则来编译该函数了。
由此我们需要谨记,cu文件类似于C++的源文件,而不是C的源文件。
当在C源文件中调用cu文件中定义的函数时,会出现undefined reference的问题,而在C++源文件中调用cu文件中定义的函数时则不会出现这个问题。
出现上述问题的原因是,nvcc编译器采用的是C++的编译规则,而C和C++对函数名的编译规则不同。
要解决上述问题,只需要在cu文件中定义的函数前加上extern "C"即可,这样nvcc编译器就会按照C的编译规则来编译该函数了。
由此我们需要谨记,cu文件类似于C++的源文件,而不是C的源文件。