cuda5.5与opencv2.4.5使用vs2008编译报错

错误 15368 error: calling a device function(“WithOutMask”) from a host function(“run”) is not allowed D:\Program Files\OpenCV-2.4.5\modules\gpu\src\cuda\matrix_reductions.cu 762

用cmake2.8.12.1生成的vs2008工程,然后编译opecv的opencv_gpu模块报出的错误,不知道该如何设置,是不是cmake设置不对啊?求救

楼主您好,

看你的代码是从你的run()中调用了一个名字叫做WithoutMask()的函数,而此函数是被标注为__device__的,只能由__global__来调用。

请确保您的大脑清醒。

感谢来访。

感谢您的回复帮助,opencv的matrix_reductions.cu是他们官方写的,估计要改一下,还要麻烦问一下__global__调用的语法是什么呢?谢谢,,,,

楼主您应当知道基本的CUDA知识,而不是让论坛试图给您从头教学带你入门。

基本的语法是:
kernel名字<<<grid里的block形状, block里的线程形状>>>(你的参数);

这是最基本的语法了。请您参考。

真的不好意思,刚刚开始用cuda,之前一直用opencv,速度有点慢,想用gpu来试试,
是这样写的吗?
kernel<threads_x * threads_y><<<grid, block>>>((PtrStepSz) src, WithOutMask(), minval_buf, maxval_buf, twidth, theight);
这个是报错的那句,好像使用globe调用的,但是报错,
真给您添麻烦了,,实在不好意思。。。。

。。。。

您需要简单的阅读下CUDA的手册,看看基本知识。

谢谢。

好吧,谢谢,麻烦您了

没关系的。

学习和使用CUDA不是5分钟能搞定的。
所以您试图拿来一个用CUDA的库,通过询问一句怎么用就能掌握CUDA, 掌握此库,这可能不是非常现实。

建议您一步一步,稳扎稳打的入门。

谢谢。