c++ - 编译 CUDA 文件、C 文件和 Cuda 头文件

标签 c++ c cuda makefile

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

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

最佳答案

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

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

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

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

关于c++ - 编译 CUDA 文件、C 文件和 Cuda 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859471/

相关文章:

c++ - 什么是 "= delete"?

c++ - 使用 String c_str() 返回 char*

c - 为什么 scanf() 会导致此代码中的无限循环?

c++ - C-Free 和 MySQL 连接

c++ - vim 不高亮某些 c++ 关键字

c - 如何调用指向 typedef 结构中定义的函数的指针

c - 在c编程语言上为数据结构分配内存的不同方法

linked-list - 使用 CUDA 创建链表

cuda - 如何在 Java 编程中使用 GPU

c - 矩阵乘法 CUDA