[英]OpenCL Compiler Error C4996
我是opencl domian的新手。 我已经通读了一些书,并尝试编译以下代码
#define __CL_ENABLE_EXCEPTIONS
#define __NO_STD_VECTOR
#define PROGRAM_FILE "blank.cl"
#define KERNEL_FUNC "blank"
//#define __MAX_DEFAULT_VECTOR_SIZE 100
#include <cstdio>
#include <fstream>
#include <iostream>
#include <iterator>
#ifdef Windows
#include <OpenCL/cl.hpp>
#else
#include <CL/cl.hpp>
#endif
using namespace std;
using namespace cl;
int main() {
// int n = 10;
vector<Platform> platforms;
vector<Device> devices;
try {
} catch (exception e) {
}
return 0;
}
但这给了我很多错误。
他们大多数如下
Error 14 error C4996: 'cl::vector<char *,10>': was declared deprecated C:\Program Files (x86)\AMD APP SDK\2.9\include\CL\cl.hpp 1138 1 Matrix_multilpy_C
所以任何人都可以帮助我。 我正在使用Visual Studio 2013进行编码,我发现我的版本是openCL 1.2
谢谢。
很简单: cl
命名空间提供了一个vector
类,由于使用了using namespace cl;
,因此需要选择它using namespace cl;
。
删除该行,包括#include <vector>
,删除__NO_STD_VECTOR
定义,只需使用std::vector<cl::Device>
, std::vector<cl::Platform>
。 std::vector
做所有需要的事情; 由于某种原因或其他原因,用于自定义矢量类的OpenCL标头通常不应该再使用(我不知道为什么实际上首先添加了它)。
您也不应该使用std
名称空间。 请注意,一旦同时使用cl
和std
名称空间,您的代码就会失败,因为突然会有两个向量类发生冲突。 所以就说不!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.