我在opensuse 13.1上安装了cuda toolkit 6.5,并且在编译cuda示例时遇到问题。
make命令后的输出为:
〜#make
make[1]: Entering directory `/home/user/NVIDIA_CUDA-6.5_Samples/0_Simple/simpleStreams
/usr/local/cuda-6.5/bin/nvcc -ccbin g++ -I../../common/inc -m64 -gencode arch=compute_11,code=sm_11 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_50,code=compute_50 -o simpleStreams.o -c simpleStreams.cu
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
g++: No such file or directory
make[1]: *** [simpleStreams.o] Error 1
make[1]: Leaving directory `/home/user/NVIDIA_CUDA-6.5_Samples/0_Simple/simpleStreams
make: *** [0_Simple/simpleStreams/Makefile.ph_build] Error 2
我的nvcc和gcc的版本是:
nvcc:NVIDIA(R)Cuda编译器驱动程序 版权所有(c)2005-2014 NVIDIA Corporation 建于Thu_Jul_17_21:41:27_CDT_2014 Cuda编译工具,发布6.5,V6.5.12
gcc version 4.8.1 20130909 [gcc-4_8-branch revision 202388](SUSE Linux)
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
nvcc
不喜欢compute_1X
X
1,2,3
的{{1}}个标记。只需删除它:-gencode arch=compute_11,code=sm_11
Makefile中的代码,你应该正确编译。虽然这只是一个警告,建议修复所有警告以避免麻烦。根据{{1}}配置,当发生警告时,它也可能会失败。
问题可能是因为找不到nvcc
编译器。您可能无法为g++
安装gcc
编译器,这是最可能的原因。或者可能发生了您手动安装它并且不在PATH上的可能性较小的原因。
要为c++
安装gcc
编译器,请按照此link进行操作。如果它不起作用,问题与计算机无关。