首页 > 解决方案 > clGetProgramBuildInfo 返回空字符串?

问题描述

我正在尝试调试我的代码,但是带有 CL_PROGRAM_BUILD_LOG 参数的方法 clGetProgramBuildInfo 返回一个空字符串,这是代码:

cl_int err;
cl_uint num_platforms;
err = clGetPlatformIDs(0, NULL, &num_platforms);
cl_platform_id platform[num_platforms];
err = clGetPlatformIDs(num_platforms, platform, NULL);
cl_uint num_devices;
err = clGetDeviceIDs(platform[0], CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);

cl_device_id device[num_devices];
err = clGetDeviceIDs(platform[0], CL_DEVICE_TYPE_ALL, num_devices, device, NULL);

cl_context context = clCreateContext(0, 1, device, NULL, NULL, &err);

string cl_str = util::loadProgram("vadd.cl");
const char * c = cl_str.c_str();
cl_program program = clCreateProgramWithSource (    context,
                                                    1,
                                                    (const char **) &c,
                                                    NULL,
                                                    NULL);

err = clBuildProgram(program, 0, NULL, NULL, NULL, NULL);

cl_char string[10240] = {0};
char* param_value;
clGetProgramBuildInfo (    program,
                           device[1],
                           CL_PROGRAM_BUILD_LOG,
                           10240,
                           string,
                           NULL);
cout << string << endl;

你能告诉我我做错了什么吗?谢谢

标签: c++opencl

解决方案


推荐阅读