C++ ‘;检查CUDAERRORS’;未在此范围中声明
我写了一个新的CUDA程序,但当我编译时,我得到一个错误,C++ ‘;检查CUDAERRORS’;未在此范围中声明,c++,cuda,C++,Cuda,我写了一个新的CUDA程序,但当我编译时,我得到一个错误,“checkCudaErrors”没有在这个范围内声明。所以我添加了#include“helper\u cuda.h”,但我仍然有同样的问题 我用VisualStudio代码打开了helper_cuda.h文件,发现这个文件的大部分是灰色的。问题是我没有定义\uuu DRIVER\u TYPES\u H\uu,所以我添加了\include“DRIVER\u TYPES.H”。但这是无用的。在driver\u types.h文件中,它显示我
“checkCudaErrors”没有在这个范围内声明
。所以我添加了#include“helper\u cuda.h”
,但我仍然有同样的问题
我用VisualStudio代码打开了helper_cuda.h文件,发现这个文件的大部分是灰色的。问题是我没有定义\uuu DRIVER\u TYPES\u H\uu
,所以我添加了\include“DRIVER\u TYPES.H”
。但这是无用的。在driver\u types.h文件中,它显示我已经有了定义\uu driver\u types\u h\uu
。我怎样才能修好它
所以真正的问题是,driver\u tyeps.h文件显示我已经有了
\uu driver\u TYPES\u h\uu
的定义,但是helper\u cuda.h显示我没有定义。你必须自己定义它,比如:
#define checkCudaErrors(call) \
do { \
cudaError_t err = call; \
if (err != cudaSuccess) { \
printf("CUDA error at %s %d: %s\n", __FILE__, __LINE__, \
cudaGetErrorString(err)); \
exit(EXIT_FAILURE); \
} \
} while (0)
我通过更改include语句的顺序解决了我的问题。 起初,我的计划是这样的:
#include "helper_cuda.h"
#include "driver_types.h"
但现在,它是:
#include "driver_types.h"
#include "helper_cuda.h"
我不知道为什么,但它只是工作。在Cuda示例中,它没有
checkCudaErrors
的定义,但我仍然可以使用此函数。那么,我应该怎么做才能使用helper_cuda.h中定义的函数,而不是自己定义它。@hytdt如何构建程序?你的相机是什么?