0

我正在尝试运行发布在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 上,我假设它必须是正确的代码,这是我的错误。我真的很感谢有人帮助我。提前致谢

4

2 回答 2

1

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

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

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

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

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

于 2012-04-01T06:31:08.877 回答
1

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

于 2012-03-21T05:16:31.520 回答