我正在关注本教程:http: //simpleopencl.blogspot.com.br/2013/06/tutorial-simple-start-with-opencl-and-c.html
我有3个错误:
错误1) - 解决了
cl::Context context({default_device}); //original code
Run Code Online (Sandbox Code Playgroud)
我刚刚脱下牙箍,没关系.
错误2) - 解决了
if(program.build(default_device)!=CL_SUCCESS){
Run Code Online (Sandbox Code Playgroud)
我只是将"default_device"替换为"all_devices",这没关系.
错误3) - 没有解决
sources.push_back({kernel_code.c_str(),kernel_code.length()});
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么办.Visual Studio指向此错误消息: "IntelliSense:期望表达式"
这是我正在谈论的代码片段:
cl::Device default_device = all_devices[0];
std::cout<< "Using device: "<<default_device.getInfo<CL_DEVICE_NAME>()<<"\n";
cl::Context context(default_device);
cl::Program::Sources sources;
// kernel calculates for each element C=A+B
std::string kernel_code=
"void kernel simple_add(global const int* A, global const int* B, global int* C)"
"{"
"C[get_global_id(0)]=A[get_global_id(0)]+B[get_global_id(0)];"
"}";
sources.push_back({kernel_code.c_str(),kernel_code.length()});
cl::Program program(context,sources);
if(program.build(all_devices)!=CL_SUCCESS){
std::cout<<" Error building: "<<program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(default_device)<<"\n";
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
sources.push_back({kernel_code.c_str(),kernel_code.length()});
Run Code Online (Sandbox Code Playgroud)
可写成
sources.push_back(
{
kernel_code.c_str(),kernel_code.length()
}
);
Run Code Online (Sandbox Code Playgroud)
在大括号之间,它期待一个表达式,一些以结尾的东西;.那是你的错误告诉你的.
现在我不知道如何Sources定义,但在这些括号中
sources.push_back(...);
Run Code Online (Sandbox Code Playgroud)
你必须指定一个由任何类型sources组成的变量,所以可以添加(推回)
这是std::vector<int>由ints 组成的一个例子
std::vector<int> myvector;
myvector.push_back(42);
Run Code Online (Sandbox Code Playgroud)
Sources 可能以类似的方式工作
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |