gcc 和 CUDA 问题
Hi,
我已经编译了一个 CUDA 共享库,但无法将其与使用它的主程序链接。我正在用 gcc 编译主程序。
代码:
简单主程序
#include <stdio.h>
#include <stdlib.h>
void fcudadriver();
int main()
{
printf("Main \n");
fcudadriver();
return 0;
}
test.cu
__global__ void fcuda()
{
}
void fcudadriver()
{
fcuda<<<1,1>>>();
}
我将 test.cu 编译为 --> 它有效
nvcc --compiler-options '-fPIC' -o libtest.so --shared test.cu
我将 simplemain.c 编译为 ---> 它给出了错误:(
gcc simplemain.c -L. -ltest
/tmp/ccHnB4Vh.o:simplemain.c:function main: error: undefined reference to 'fcudadriver'
collect2: ld returned 1 exit status
尝试使用 g++ 而不是 gcc。 nvcc 使用 C++ 风格的链接约定。 (您不需要重命名任何文件。)
或者,如果您必须使用 gcc,请在前面加上您的void fcudadriver()
函数定义如下:
extern "C" void fcudadriver()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)