我正在尝试分配一个向量(字符串数组)来存储 2 个或更多字符(字节),但 OpenCL 内核的编译器(clang)kernel parameter cannot be declared as a pointer to a pointer
在声明 char**compressedBytes 数组时抛出以下错误
内核: https ://gist.github.com/PontiacGTX/0f0897ac1eaf93cb04a5c1e3c205dc4b
主持人: https ://gist.github.com/PontiacGTX/745b4942acab0c7213dee1fede6a8e35
内核编译器错误是:
创建内核 1 失败
C:\Users\PONTIA~1\AppData\Local\Temp\OCL4936T1.cl:31:111: 错误:内核参数不能声明为指向指针 __kernel void CopyBytes(__global unsigned char const* fileBytes,unsigned long length ,__global unsigned char**compressedBytes, __global unsigned long* arrayCountCompressedBytes) ^
C:\Users\PONTIA~1\AppData\Local\Temp\OCL4936T1.cl:40:16:警告:不兼容的整数到指针转换初始化 'const __generic char ' 使用类型为 'int' 的表达式 const char str=fileBytes[ i] + 文件字节[i+1]; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\PONTIA~1\AppData\Local\Temp\OCL4936T1.cl:41:9: 警告:不兼容的指针类型将 '__global unsigned char *__generic *' 传递给 'const __global char *__generic *' 类型的参数(compressedBytes,size,str,found); ^~~~~~~~~~~~~~~
C:\Users\PONTIA~1\AppData\Local\Temp\OCL4936T1.cl:10:33:注意:在此处将参数传递给参数“开始” void Find(__global const char** begin,unsigned long length, const char* val,int 找到)^
C:\Users\PONTIA~1\AppData\Local\Temp\OCL4936T1.cl:45:23: 错误:将 'const __generic char *' 分配给 '__global unsigned char *__generic' 更改指针压缩字节的地址空间 [i]=字符串;^~~~