在OpenCvCL中出现运行时段错误的情况也可能是因为上次对kernel的参数的匹配有问题造成的,第一次写kernel,第一次set kernel arguments就出现了这个问题
例如:
cl_mem input_dst ;
vector<pair<size_t , const void *> > args;
args.push_back( make_pair( sizeof(cl_mem) , (void *)&src.data ));
........
args.push_back( make_pair( sizeof(cl_mem) , (void *)input_dst));
这种情况下,运行的时候就会报段错误:
段错误
原因是,地址转换过程中去地址有错,应该改为:
args.push_back( make_pair( sizeof(cl_mem) , (void *)&input_dst));
真是:
为系统而生,为框架而死,为debug奋斗一辈子
吃符号的亏,上大小写的当,最后死在需求上。
哈哈