c - 在Linux上编译OpenCL ICD加载器时出错

标签 c compilation makefile cmake opencl

尝试编译测试OpenCL ICD驱动程序:Linux(ubuntu 12.04)上的http://www.khronos.org/registry/cl/specs/opencl-icd-1.2.11.0.tgz

按照自述文件进行构建:

wget http://www.khronos.org/registry/cl/specs/opencl-icd-1.2.11.0.tgz
tar xvf opencl-icd-1.2.11.0.tgz
cd icd/inc
mkdir CL
cd CL
cp /usr/include/CL/* .
cd ../..
make


但是make抛出错误,例如:

In file included from icd.c:42:0:
icd_dispatch.h:105:5: error: unknown type name 'cl_device_partition_property'
icd_dispatch.h:111:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CL_API_SUFFIX__VERSION_1_2'
icd_dispatch.h:114:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CL_API_SUFFIX__VERSION_1_2'
icd_dispatch.h:177:5: error: unknown type name 'cl_image_desc'
...


看起来cl_device_partition_property应该引用opencl头文件〜/ icd / inc / CL / cl_ext.h,但是由于某种原因没有选择它。有什么建议?

最佳答案

看起来您正在使用OpenCL 1.1标头,而正在构建的ICD是针对1.2的。 cl_device_partition_propertycl_image_desc类型在cl.h中定义,但仅在OpenCL 1.2中添加。

您可以从Khronos OpenCL Registry下载OpenCL 1.2标头。

关于c - 在Linux上编译OpenCL ICD加载器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23077874/

相关文章:

c - 为什么数组的每个元素必须具有相同的大小?

compilation - 在虚拟机中编译代码可以吗?

c - OpenMP任务的任务调度点

c - 如果在输入中找到小写字母,在使用C加密之前如何将其转换为大写?

scala - 模式匹配是在编译时还是运行时解决的?

javascript - 我成功编译了我的程序。现在我该如何运行它?

c - 如何在 Makefile 中复制文件并创建目录?

戈朗 : How to link C objects using CGO_OFILES?

c - arm-none-eabi中没有检查头文件

c - 寻求 C 联盟的清晰度