4

我在使用 Nsight Eclipse 时遇到了这个问题。我刚刚安装了我的 Cuda Toolkit 5.0 我有一个项目,它使用了几个 C 文件和一个 Cuda 文件。

我读到有时当您在 Nsight 中将 C 文件与 Cuda 文件一起使用时会出现问题,因此我将项目中的所有文件更改为 .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。

有人知道如何解决这个问题吗?谢谢

4

1 回答 1

21

你在这里的破折号:

–Xcompiler –fopenmp

不是正确的破折号。如果您仔细查看您的问题发布,您会发现它们与之前的正确字符略有不同:

-I/usr/include/ImageMagick

例如。

您需要用包含开关前面使用的相同类型的破折号替换这些破折号。如果您手动输入了这些编译器选项,则需要修复这些字符。

这个破折号:

是不正确的。

使用这个破折号:

-

反而。

于 2013-05-13T18:21:56.510 回答