我在使用Nsight Eclipse时遇到了这个问题。我刚刚安装了我的Cuda Toolkit 5.0,我有一个项目,它使用了几个C文件和一个Cuda文件。
我读到有时当您在Nsight中使用Cuda文件中的C文件时出现问题,因此我将所有文件更改为项目中的.cu和.cuh扩展名。同样地,它说有时问题来自于为具有黑色空格的文件设置路径,我确信不是这种情况。
尝试编译第一个文件Calcular.cu
时出现错误这是编译输出
make all
Building file: ../Calcular.cu
Invoking: NVCC Compiler
nvcc -I/usr/include/ImageMagick -G -g -O0 -gencode arch=compute_11,code=sm_11 -gencode arch=compute_12,code=sm_12 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_20,code=sm_21 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -odir "" -M -o "Calcular.d" "../Calcular.cu"
nvcc –Xcompiler –fopenmp --compile -G -I/usr/include/ImageMagick -O0 -g -gencode arch=compute_11,code=compute_11 -gencode arch=compute_11,code=sm_11 -gencode arch=compute_12,code=compute_12 -gencode arch=compute_12,code=sm_12 -gencode arch=compute_13,code=compute_13 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=compute_20 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_20,code=sm_21 -gencode arch=compute_30,code=compute_30 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=compute_35 -gencode arch=compute_35,code=sm_35 -x cu -o "Calcular.o" "../Calcular.cu"
nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
make: *** [Calcular.o] Error 255
这是我的编译选项
–Xcompiler –fopenmp -I/usr/include/ImageMagick -G -g -O0
编译不会在文件中出现其他错误。它需要编译的文件是Calcular.cu,Calcular.cuh,Preprocesamiento.cu,Preprocesamiento.cuh,Principal.cu,Principal.cuh。
有人知道如何解决这个问题吗?感谢
答案 0 :(得分:21)
你在这里的破折号:
–Xcompiler –fopenmp
不是正确的破折号。如果你仔细查看你的问题发布,你会发现它们的字符与之前的正确字符略有不同:
-I/usr/include/ImageMagick
例如。
您需要使用include开关前面使用的相同类型的短划线替换这些短划线。如果您手动输入了这些编译器选项,则需要修复这些字符。
这个破折号:
–
不正确。
使用此破折号:
-
代替。