我正在尝试使用CUDA加速c项目(而不是c ++)中的关键功能。
出于某种原因,当我将其中一个文件的名称更改为.cu时,我无法让Makefile识别.cu扩展名。
它正在使用配置脚本和.am / .in / .deps文件,我并不是很了解这些文件,但基本上我对file.c进行了grepped并将它们全部更改为file.cu,但它生成一个file.o:File Not Found错误。
顶级制作文件
https://www.dropbox.com/s/g282qvbdu8pdas0/Makefile
Src文件夹makefile
https://www.dropbox.com/s/b4pq026od8gauqi/Makefile
我使用的搜索命令是
grep -R -i "file.c"
我只是将它们全部更改为file.cu,然后重新运行configure,make clean,make all - 结果是File Not Found。
我认为它必须与Makefile忽略/接受的扩展有关,但是因为我用C编程已经很长时间了,而且我从未使用过如此复杂的Makefile,我不知道如何解决它。
有什么想法吗?
* PS此外,file.cu目前有编译错误,但我收到的错误消息是File Not Found,所以我认为这不是问题。
答案 0 :(得分:1)
您需要有一条规则来构建o
文件中的cu
文件:
cudafile.o: cudafile.cu
nvcc $(NVCC_FLAGS) -c %< -o $@
因此,您还需要为cu文件指定规则,并使用nvcc进行编译。
答案 1 :(得分:0)
以下指南似乎涵盖了它......
http://mcclanahoochie.com/blog/2011/02/automake-and-cuda/
实际上,链接中给出的大多数建议似乎都不需要进行基本编译,但出于某种原因,我发现当我使用autoconf重新创建配置文件时,它起作用了。想到没有解释。