运行clsurf时出错

时间:2012-03-20 08:17:25

标签: opencl surf

我正在尝试运行http://code.google.com/p/clsurf/source/browse/#svn%2Ftrunk%2Fsrc上发布的CLSurf代码 我有一个支持OpenCL的ATI显卡。我也安装了OpenCV。 我把OpenCL(AMD SDK)和OpenCV的路径目录。 但是当我运行程序时,会发生以下错误。我很茫然,无法理解。

main.obj : error LNK2019: unresolved external symbol "int __cdecl surfRef(char *,int,int,int,float,void * *)" (?surfRef@@YAHPADHHHMPAPAX@Z) referenced in function "int __cdecl mainImage(struct _cl_kernel * *,char *,char *,char *,bool)" (?mainImage@@YAHPAPAU_cl_kernel@@PAD11_N@Z) 1>C:\Users\RohitRP\Documents\AMD APP\\samples\opencl\bin\debug\x86\openclsurf.exe : fatal error LNK1120: 1 unresolved externals

我知道这里有很多错误。但由于它发布在code.google.com上,我认为它必须是正确的代码,这是我的错误。我真的很感谢有人帮助我。提前致谢

2 个答案:

答案 0 :(得分:1)

AFAIK,clSurf目前已在Linux上实现并运行,您是否已将其移植到Windows以使其使用Visual Studio运行?你有没有在wiki http://code.google.com/p/clsurf/source/browse/wiki/InstallationLinux.wiki

下面查看过

答案 1 :(得分:1)

据我所知,clsurf中没有任何内容真正是Windows或Linux特定的

问题是函数调用“surfRef”,它用于调用可以链接到的基线串行SURF实现。我们使用串行基线来比较我们的代码。

http://www.chrisevansdev.com/computer-vision-opensurf.html

OpenCL代码中不包含C ++基线,因为它不需要,也不是由我们创建的。您可以简单地在main.cpp中的第300行注释掉“if(verifyResults)”块或函数调用

如果不需要验证,我应该在它周围添加一个宏来禁用它。对不起。