小编dfa*_*rce的帖子

OpenCL clCreateContext 中从 void (*) (...) 到 void (*) (...) 的无效转换

我正在向 C++ 和 OpenCL 迈出第一步来执行并行计算,但是我遇到了一个错误,试图将侦听器函数传递给 clCreateContext。我的程序(未显示)崩溃没有错误,所以我需要添加一个函数来将 OpenCL 错误转发到 stdout/stderr。clCreateContext 函数有一个函数指针参数,该函数指针可以设置为将错误消息转发到 stdout 或 stderr。但是使用 Codeblocks/MinGW 时出现编译时错误:

invalid conversion from 'void (*)(const char*, const void*, size_t, void*)' to 
'void (*)(const char*, const void*, size_t, void*)'
Run Code Online (Sandbox Code Playgroud)

我在下面的代码中复制了这个问题:

#include <stdlib.h>
#include <stdio.h>
#include <CL\cl.h>

void pfn_notify(const char *errinfo, const void *private_info, size_t cb, void *user_data)
{
    fprintf(stderr, "OpenCL Error (via pfn_notify): %s\n", errinfo);
}

int main()
{
    /*Get platform and device info*/
    cl_platform_id platform_id = NULL;
    cl_uint ret_num_platforms;
    cl_int ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms); …
Run Code Online (Sandbox Code Playgroud)

c c++ opencl

4
推荐指数
1
解决办法
921
查看次数

标签 统计

c ×1

c++ ×1

opencl ×1