0
我是CUDA编程的新手,因此遇到了编译/链接文件的问题。我试图编译.c
和.cu
文件。 以下是文件:
p3.c
:CUDA链接错误undefined参考
#include <stdlib.h>
#include <stdio.h>
extern void load_scheduler(int k, int j);
int blocks, threads;
int main(int argc, char* argv[])
{
if (argc > 1)
{
blocks = atoi(argv[1]);
threads = atoi(argv[2]);
}
else
exit(1);
load_scheduler(blocks, threads);
}
而且scheduler.cu
文件:
#include <stdlib.h>
#include <stdio.h>
__global__ void sched_func()
{
int j = 6*5*threadIdx.x;
printf("%d\n",j);
}
void load_scheduler(int b, int n)
{
sched_func<<< b,n >>>();
}
我编译使用nvcc -c scheduler.cu p3.c
这两个文件,它似乎罚款
然而,当我尝试这两个链接文件使用nvcc -o cuda_proj scheduler.o p3.o
,我收到一个错误:
p3.o: In function `main':
p3.c:(.text+0x58): undefined reference to `load_scheduler'
collect2: ld returned 1 exit status
我可能没有使用正确的步骤来完成这项工作,所以如果还有其他方法,我应该尝试一下,欢迎提出建议。我也是新创Makefiles所以想坚持在终端上使用nvcc命令。