我的这个项目有以下文件结构:
|-- CG.cu |-- Makefile |-- examples | |-- ex2.h | |-- ex3.h | |-- mmio.c | |-- mmio.h | |-- nos4.mtx |-- util.h
CG.cu 是我的主程序(共轭渐变求解器)我在 util.h 中有一些帮助函数,然后我在中有一些硬编码的例子ex2.h 和 ex3.h (我知道这是不好的做法,但现在没问题)问题是 ex3.h 需要mmio.c,要在示例中加载mmio.h和nos4.mtx。
所以基本上流程是:CG.cu - > ex3.h - > mmio.h(mmio.c) 编译器(NVCC:后来被移植到cuda)抱怨mmio函数的未定义引用。
目前我的Makefile看起来像这样:
main: CG.cu util.h
NVCC -o main CG.cu
和GC.cu使用#include "examples/ex3.h"
,ex3.h使用#include "mmio.h"
你能帮助我吗?
答案 0 :(得分:0)
首先需要编译mmio.c,然后将CG.cu与生成的目标文件链接起来。您也可以一步完成:
mian: CG.cu util.h NVCC -o main CG.cu mmio.c