1

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

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

4

1 回答 1

1

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

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

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

定义您需要的任何 CUDA 特定选项CUDAFLAGS。我认为它可以在不将CFLAGSandLDFLAGS变量括在引号中的情况下工作,但是您可能需要对此进行一些试验。

于 2013-04-07T06:29:31.717 回答