【发布时间】:2012-09-04 16:22:02
【问题描述】:
我有一个 .cu 文件,其中包含我的 cuda 内核,以及一个调用内核的包装函数。我也有一堆 .c 文件,其中一个包含主要功能。这些 .c 文件之一从 .cu 调用包装函数来调用内核。
我将这些文件编译如下:
LIBS=-lcuda -lcudart
LIBDIR=-L/usr/local/cuda/lib64
CFLAGS = -g -c -Wall -Iinclude -Ioflib
NVCCFLAGS =-g -c -Iinclude -Ioflib
CFLAGSEXE =-g -O2 -Wall -Iinclude -Ioflib
CC=gcc
NVCC=nvcc
objects := $(patsubst oflib/%.c,oflib/%.o,$(wildcard oflib/*.c))
table-hash-gpu.o: table-hash.cu table-hash.h
$(NVCC) $(NVCCFLAGS) table-hash.cu -o table-hash-gpu.o
main: main.c $(objects) table-hash-gpu.o
$(CC) $(CFLAGSEXE) $(objects) table-hash-gpu.o -o udatapath udatapath.c $(LIBS) $(LIBDIR)
到目前为止一切都很好。 table-hash-gpu.cu 从 .c 文件之一调用函数。链接 main 时,我收到该函数不存在的错误。谁能告诉我这是怎么回事?
【问题讨论】:
-
哪个函数不存在???是内核不存在?
标签: object compilation cuda