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

私の知る限り、本当に Windows または Linux 固有のものは clsurf にありません。

問題は、リンクできるベースライン シリアル SURF 実装を呼び出すために使用される「surfRef」への関数呼び出しです。シリアル ベースラインを使用してコードを比較しました。

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

C++ ベースラインは OpenCL コードに含まれていません。これは必要なく、私たちが作成したものでもないためです。「if(verifyResults)」ブロックまたは main.cpp の 300 行目の関数呼び出しをコメントアウトするだけです。

検証が必要ない場合は、マクロを追加して無効にする必要がありました。申し訳ありません。

于 2012-04-01T06:31:08.877 に答える
1

私の知る限り、clSurf は現在 Linux で実装および実行されていますが、これを Windows に移植して Visual Studio を使用して実行しましたか? 以下のwikiをチェックしましたかhttp://code.google.com/p/clsurf/source/browse/wiki/InstallationLinux.wiki

于 2012-03-21T05:16:31.520 に答える