我的应用程序中有两个版本的函数,一个在 CUDA 中实现,另一个在标准 C 中实现。它们位于不同的文件中,比方说cudafunc.h and func.h(实施是在cudafunc.cu and func.c)。我想在编译应用程序时提供两个选项。如果该人安装了 nvcc,它将编译cudafunc.h。否则会编译func.h.
有没有办法检查机器是否在 makefile 中安装了 nvcc,从而相应地调整编译器?
非常感谢,
您可以尝试使用条件,例如
ifeq (($shell which nvcc),) # No 'nvcc' found
func.o: func.c func.h
HEADERS += func.h
else
func.o: cudafunc.cu cudafunc.h
nvcc -o $@ -c $< . . .
CFLAGS += -DUSE_CUDA_FUNC
HEADERS += cudafunc.h
endif
然后在调用该函数的代码中,可以测试#if USE_CUDA_FUNC
决定要包含哪个标头以及要调用哪个接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)