我是从2.0的OpenCLÇ得到一个链接器错误++绑定头文件cl2.hpp 。 我所有的头文件直接来自Khronos的OpenCL的注册表和我建立OpenCL.lib文件自己。 我不使用的OpenCL 1.2 C ++绑定头文件得到一个错误。
我使用Qt 5.5.0和Visual Studio C ++ 2013的Windows7 64位。
的误差乘以在多个源文件中定义的符号有关。
mainwindow.cpp.obj:-1: error: LNK2005: "enum cl::QueueProperties __cdecl
cl::operator|(enum cl::QueueProperties,enum cl::QueueProperties)"
(??Ucl@@YA?AW4QueueProperties@0@W410@0@Z) already defined in main.cpp.obj
我不明白为什么编译器说这是已定义。
我在cl2.hpp文件缩小的问题,这个代码
QueueProperties operator|(QueueProperties lhs, QueueProperties rhs)
{
return static_cast<QueueProperties>(static_cast<cl_command_queue_properties>(lhs) | static_cast<cl_command_queue_properties>(rhs));
}
当我注释掉的代码了我的项目编译并运行良好。 你有任何线索,这是什么问题? 它是在cl2.hpp头文件一个糟糕的设计?