Opencv 2.3.0 Flann链接错误(Xcode)

时间:2013-04-11 06:39:20

标签: opencv xcode4 linker mach-o

我有一个较旧的系统(OSX 10.6.8 with xcode 4.0),我正在尝试让OpenCV 2.3.0使用它。我无法解决的问题是每当我尝试使用flann库时,我的xcode都会给我一个Mach-O链接器错误。到目前为止,我已经尝试重新编译所有库并从不同的源构建dylib,但它没有帮助。当我检查终端中的库时,我得到了

Freddi-2:OpenCV-2.3.0 fredchen$ file /usr/local/lib/libopencv_flann.dylib
/usr/local/lib/libopencv_flann.dylib: Mach-O 64-bit dynamically linked shared library x86_64

我的具体错误代码是:

Undefined symbols for architecture x86_64:
  "cv::flann::KDTreeIndexParams::KDTreeIndexParams(int)", referenced from:
  _main in main.o
  "cv::flann::SearchParams::SearchParams(int, float, bool)", referenced from:
  _main in main.o
  "cv::FlannBasedMatcher::FlannBasedMatcher(cv::Ptr<cv::flann::IndexParams> const&, cv::Ptr<cv::flann::SearchParams> const&)", referenced from:
  _main in main.o
  "cv::BFMatcher::BFMatcher(int, bool)", referenced from:
  _main in main.o
  "cv::flann::IndexParams::~IndexParams()", referenced from:
  cv::flann::SearchParams::~SearchParams() in main.o
  "cv::flann::IndexParams::~IndexParams()", referenced from:
  cv::Ptr<cv::flann::IndexParams>::delete_obj() in main.o
  "vtable for cv::BFMatcher", referenced from:
  cv::BFMatcher::~BFMatcher() 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)

我与项目链接的动态库是:

libopencv_video.2.3.0.dylib
libopencv_objdetect.2.3.0.dylib
libopencv_ml.2.3.0.dylib
libopencv_legacy.2.3.0.dylib
libopencv_gpu.2.3.0.dylib
libopencv_contrib.2.3.0.dylib
libopencv_ts.2.3.0.dylib
libopencv_imgproc.2.3.0.dylib
libopencv_highgui.2.3.0.dylib
libopencv_flann.2.3.0.dylib
libopencv_features2d.2.3.0.dylib
libopencv_core.2.3.0.dylib
libopencv_calib3d.2.3.0.dylib

我很感激任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我记得在Mac上使用2.3.0时有类似的错误。您应该尝试使用最新版本,2.4.4或github的最新版本。