我尝试编译Intel OpenCL代码。程序很简单:
#include <CL/cl.h>
int main(int argc, char** argv)
{
cl_int error = CL_SUCCESS;
// Get platform number.
cl_uint platformNumber = 0;
error = clGetPlatformIDs(0, NULL, &platformNumber);
return 0;
}
但未找到_clGetPlatformIDs@12
。我添加OpenCL.lib和路径。在OpenCL.lib中是clGetPlatformIDs
,而不是_clGetPlatformIDs@12
。
如何关闭名称修改?
答案 0 :(得分:1)
不是我对opencl
库有任何线索,而只是写
extern "C" {
#include <CL/cl.h>
}
可能有助于解决C / C ++名称重整冲突。
答案 1 :(得分:1)
将默认调用约定设置为cdecl
。在Visual Studio中,这是在项目属性Configuration Properties - &gt;中。 C / C ++ - &gt;高级窗格。
答案 2 :(得分:1)
我认为您链接到错误的库版本。应该有一个x86(Win32)版本和一个x64版本。默认情况下,VS2013创建x86(Win32)C ++应用程序。切换库,或将项目更改为x64。请参阅http://msdn.microsoft.com/en-us/library/9yb4317s.aspx。