编译CUDA文件、C文件和CUDA头文件

Compiling a CUDA file, C file, and Cuda header file

本文关键字:文件 CUDA 编译      更新时间:2023-10-16

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

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

nvcc使用文件扩展名自动确定语言和编译轨迹。因此,您实际上只需要一条编译语句,它可以像

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

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

定义您在CUDAFLAGS中需要的任何CUDA特定选项。我认为它将工作没有封闭的CFLAGSLDFLAGS变量在引号中,但你可能需要尝试一点。