在makefile中编译cuda文件时出错
为了编译我的文件,我制作了一个makefile:在makefile中编译cuda文件时出错,makefile,cuda,nvcc,Makefile,Cuda,Nvcc,为了编译我的文件,我制作了一个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) $(
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
CFLAGS=-O3-Wall-I/usr/local/cuda/include/
NVCCFLAGS=-O3-拱门sm_20
LDFLAGS=-O3-L/usr/local/cuda/lib64-lcudart
EXE=runAPP
app.o:app.cu
$(NVCC)$(NVCCFLAGS)-c$<-o$(CPPFLAGS)$(LIB_路径)$(LDFLAGS)$@
$(EXE):app.o
$(NVCC)$(NVCCFLAGS)$(CFLAGS)$(LDFLAGS)-o$@$(CPPFLAGS)$(LIB_PATH)app.o\
-兰努查尔-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,这是真的吗
提前谢谢 如果使用makefile,您有:
CFLAGS=-O3-墙-I/usr/local/cuda/include/
NVCCFLAGS=-O3-拱门sm_20
LDFLAGS=-O3-L/usr/local/cuda/lib64-lcudart
EXE=runAPP
app.o:app.cu
$(NVCC)$(NVCCFLAGS)-c$<-o$(CPPFLAGS)$(LIB_路径)$(LDFLAGS)$@
我们应该扩张到零;尝试将其更改为CFLAGS,或将CFLAGS更改为cppfagas。您没有显示
app.o
的编译规则。它是如何编译成对象的?您展示的makefile只描述了如何通过链接app.o
和一些库来构建runApp
。但是您尚未显示app.o
的生成规则。我要求你给我看一下。app.o:app.cu$(NVCC)-c%<$(CFLAGS)$(LDFLAGS)-o$@我刚刚添加了,但我得到了:缺少分隔符请编辑问题以显示实际的生成文件和实际的错误……没问题。我自己也有过这样的时刻
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) $@