我制作了一个Makefile来编译我的文件:
CFLAGS = -O3 -Wall -I /usr/local/cuda/include/
NVCCFLAGS = -O3 -arch sm_20
LDFLAGS = -O3 -L/usr/local/cuda/lib64 -lcudart
EXE = runAPP
app.o:app.cu
$(NVCC) $(NVCCFLAGS) -c $< -o $(CPPFLAGS) $(LIB_PATH) $(LDFLAGS) $@
$(EXE): app.o
$(NVCC) $(NVCCFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(CPPFLAGS) $(LIB_PATH) app.o \
-lANN_char -lz
cp $@ ../bin
但我遇到了这个问题:
app.cpp:26:26: 错误:cuda_runtime.h:没有那个文件或目录 app.cpp:27:18: 错误:cuda.h:没有那个文件或目录
这是我在app.cpp中包含它们的方式:
#include <cuda.h>
#include <cuda_runtime.h>
为什么会出现这个问题?
我在谷歌上搜索,他们说app.cpp必须始终为app.cu,这是真的吗?
提前致谢。
app.o
指定编译规则。它是如何编译成目标文件的? - talonmies