2

次のファイルを xcode でコンパイルしようとすると、次のようになります。

http://openkinect.org/wiki/C%2B%2BOpenCvExample

次のエラーが表示されます。

Ld build/Debug/KinectOpenCV normal x86_64
cd "/Users/Scott/Dropbox/Project/KinectOpenCV/KinectOpenCV"
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang++ -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk "-L/Users/Scott/Dropbox/Project/KinectOpenCV/KinectOpenCV/build/Debug" "-F/Users/Scott/Dropbox/Project/KinectOpenCV/KinectOpenCV/build/Debug" -filelist "/Users/Scott/Dropbox/Project/KinectOpenCV/KinectOpenCV/build/KinectOpenCV.build/Debug/KinectOpenCV.build/Objects-normal/x86_64/KinectOpenCV.LinkFileList" -mmacosx-version-min=10.7 -lopencv_core.2.3.2 -lopencv_highgui.2.3.2 -lfreenect.0.0.1 -framework GLUT -framework OpenGL -o "/Users/Scott/Dropbox/Project/KinectOpenCV/KinectOpenCV/build/Debug/KinectOpenCV"

Undefined symbols for architecture x86_64:
"_freenect_find_video_mode", referenced from:
  freenect_threadfunc(void*) in main.o
"_freenect_set_video_mode", referenced from:
   freenect_threadfunc(void*) in main.o
"_freenect_find_depth_mode", referenced from:
  freenect_threadfunc(void*) in main.o
"_freenect_set_depth_mode", referenced from:
  freenect_threadfunc(void*) in main.o
"_freenect_select_subdevices", referenced from:
  _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

問題を解決するために考えられるすべてのことを試みてきましたが、喜びはありません。特定のアーキテクチャ (32 ビットまたは 64) 用にコンパイルを試みました。すべてのライブラリを再リンクし、新しいプロジェクトを開始してすべてを再度インポートするなどのその他の手段を試みました。

4

1 に答える 1

1

libfreenect を再構築する必要があるようです。

このチュートリアルの指示に従うことをお勧めします。すべてを再インストールしたら、そのnmテストを再度実行して、シンボルが最終的に表示されるかどうかを確認してください。

そうでない場合は、ライブラリ ソースを grep して、それらが定義されていて、何らかの理由で単純に条件付けされているかどうかを確認します。

于 2011-11-27T15:41:08.213 に答える