正在尝试将现有c项目改编为Makefile未找到的CUDA、.cu文件
我正在尝试使用CUDA加速c项目(不是c++)中的一个关键函数 由于某些原因,当我将其中一个文件的名称更改为.cu时,我无法让Makefile识别.cu扩展名 它使用了一个配置脚本和.am/.in/.deps文件,我并不完全理解这些文件,但基本上我将对file.c的引用改为file.cu,但它生成了一个file.o:file Not Found错误 顶层生成文件 Src文件夹生成文件 我使用的搜索命令是正在尝试将现有c项目改编为Makefile未找到的CUDA、.cu文件,c,cuda,makefile,C,Cuda,Makefile,我正在尝试使用CUDA加速c项目(不是c++)中的一个关键函数 由于某些原因,当我将其中一个文件的名称更改为.cu时,我无法让Makefile识别.cu扩展名 它使用了一个配置脚本和.am/.in/.deps文件,我并不完全理解这些文件,但基本上我将对file.c的引用改为file.cu,但它生成了一个file.o:file Not Found错误 顶层生成文件 Src文件夹生成文件 我使用的搜索命令是 grep -R -i "file.c" 我只是将它们全部改为file.cu,然后重新运
grep -R -i "file.c"
我只是将它们全部改为file.cu,然后重新运行configure、makeclean、makeall-结果是找不到文件
我想这一定与扩展被Makefile忽略/接受有关,但由于我已经很久没有用C编程了,而且我从未使用过如此复杂的Makefile,我不知道如何修复它
有什么想法吗
*另外,file.cu目前也有编译错误,但我收到的错误消息是找不到file,因此我认为这不是问题。您需要有一个规则来从
cu
文件生成o
文件:
cudafile.o: cudafile.cu
nvcc $(NVCC_FLAGS) -c %< -o $@
cudafile.o:cudafile.cu
nvcc$(nvcc_标志)-c%<-o$@
因此,您还需要为cu文件指定规则,并使用nvcc进行编译。以下指南似乎涵盖了这一点
实际上,链接中给出的大多数建议对于基本编译来说似乎是不必要的,但出于某种原因,我发现当我使用autoconf重新创建配置文件时,它起到了作用。我没有想到任何解释。好的,我已经发布了makefiles的链接。