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 回答