1

当我通过命令编译我的 CUDA 代码时:

nvcc lbm.cu -I/usr/local/NVIDIA_GPU_Computing_SDK/CUDALibraries/common/inc -lm

编译器报告了以下错误:

In file included from lbm.cu:15:
lbm_kernel.h:52:8: warning: extra tokens at end of #endif directive
/usr/local/NVIDIA_GPU_Computing_SDK/CUDALibraries/common/inc/cutil_inline_runtime.h(329): error: identifier "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED" is undefined

1 error detected in the compilation of "/tmp/tmpxft_00005ff8_00000000-4_lbm.cpp1.ii".

这就是全部内容。在我编译其他代码的过程中,我从来没有见过它。我能做些什么 ?

4

1 回答 1

1

有一个错误和一个警告。该错误几乎可以肯定是由于您在其他问题中列出的情况:

error: identifier "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED" is undefined

如果您想知道为什么会出现该错误,则有必要检查您的代码,尤其是包含该特定标识符 ( CURAND_STATUS_DOUBLE_PRECISION_REQUIRED)的行

这可能是因为您没有#include "curand.h"在程序中提供该特定标识符(枚举值)的定义。

该警告是由于一个不寻常的构造:

__device__ int ind(int x, int y, int z, int k, int4 dim);
__device__ int ind(int x, int y, int dim_x);
#endif _LBM_KERNEL_H

最后一行应该是:

#endif // _LBM_KERNEL_H
于 2013-06-22T14:51:13.823 回答