编译CUDA文件,C文件和Cuda头文件

时间:2013-04-07 06:08:44

标签: c++ c cuda makefile

我有一个CUDA内核,我想从C文件启动。我将内核放在.cu文件中,并创建了一个调用内核的包装函数。然后我创建了一个简单声明包装函数的头文件。在我的C文件中,我包含了头文件并调用了包装函数。

如果我想将这些文件编译到对象然后链接它们,我的makefile会是什么样子?

1 个答案:

答案 0 :(得分:1)

nvcc使用文件扩展名自动确定语言和编译轨迹。所以你实际上只需要一个编译语句,它可以简单到:

application:     foo.cu bar.c
                 nvcc $(CUDAFLAGS) -XComplier=$(CFLAGS) -Xlinker=$(LDFLAGS) -o $@ $^

[免责声明:用浏览器编写,不包含标签,从未测试,确切形式将取决于使用make的风味,使用风险自负]

CUDAFLAGS中定义您需要的任何CUDA特定选项。我认为它不会将CFLAGSLDFLAGS变量括在引号中,但您可能需要对此进行一些实验。