error C4996: 'clCreateImage2D': 被声明为已否决

1、一个指标不治本的解决方法:

在代码中添加一行:#pragmawarning( disable : 4996 )

错误消失,程序能够运行,但后续步骤会出错

2、程序出错原因:

通过查询本机OpenCL平台可以看到,本机有两个OpenCL平台,一个为1.2版本,另一个为2.0版本的。而对于函数clCreateImage2D在1.1版本中可以正常使用,而在1.2版本中已经被集成为clCreateImage函数,没有2D和3D之分。注意到1.2版的OpenCL平台是系统自带的,而2.0版本的OpenCL是我当时安装的AMD APP。


3、错误解决方法:

创建OpenCL图像对象的几个必要的步骤:

创建并填充图像格式描述符à创建图像描述符à使用memset函数将图像描述符结构体清零à填充图像描述符中的几个必要项à创建图像对象

(本次程序出错在于没有进行图像描述符结构体清零)

具体代码如下:


error C4996: 'clCreateImage2D': 被声明为已否决_第1张图片


参考书目《OpenCL异构并行计算 原理、机制与优化实践》

你可能感兴趣的:(OpenCL,毕业论)