getAllFills
我正在尝试运行最后一行代码。我为其余的功能提供了相关的代码。 ii是因为我正在运行的代码在循环内。 getBuildInfo是来自位于此处的cl_program类的函数调用:
https://github.khronos.org/OpenCL-CLHPP/classcl_1_1_program.html
我知道我做错了什么。我想做的是在Program [ii] cl_program对象上调用getBuildInfo函数。编译器告诉我
GpuContext* ctx
struct GpuContext
{
/*Input vars*/
size_t deviceIdx;
size_t rawIntensity;
size_t workSize;
int stridedIndex;
int memChunk;
bool isNVIDIA = false;
int compMode;
/*Output vars*/
cl_device_id DeviceID;
cl_command_queue CommandQueues;
cl_mem InputBuffer;
cl_mem OutputBuffer;
cl_mem ExtraBuffers[6];
cl_program Program[2];
cl_kernel Kernels[2][8];
size_t freeMem;
int computeUnits;
std::string name;
uint32_t Nonce;
};
ctx->Program[ii].getBuildInfo((cl_int*)1);
但是从结构GpuContext中可以看到Program [ii](cl_program)不是指针。 member reference type 'cl_program' (aka '_cl_program *') is a pointer; did
you mean to use '->'?
ctx->Program[ii].getBuildInfo((cl_int*)1);
~~~~~~~~~~~~~~~~^
->
是正确的吗?
答案 0 :(得分:2)
cl_program
只是_cl_program*
的{{3}},其中_cl_program
是一个结构。结果,Program[ii]
实际上是一个指针,并且错误消息已得到充分证明。