2011-09-24 61 views
1

通过cmake进程构建并安装opencv后,我采取了一些建议步骤将这些库集成到Xcode项目中。在Xcode项目中使用OpenCV会导致链接器错误

  • 我使用 “链接二进制与图书馆” 在构建阶段两个libopencv_core.dylib和libopencv_highgui.dylib
  • “头搜索路径” 包含/ usr /本地/包括/和/ usr/include中/(中opencv标头本身位于/ usr/local/include/opencv2中,我试图将其包含在内)
  • “库搜索路径”包含/ usr/local/lib和/ usr/lib(opencv dylib文件位于/ usr/local/lib /)

然后我加了一点demo的opencv代码。当我运行这个项目,我让你从连接问题预计错误:

Apple Mach-O Linker Error: Undefined symbols for architecture x86_64: "_cvCvtColor", referenced from:

使用的dylibs我包括file显示我的期望:

file /usr/local/lib/libopencv_core.dylib /usr/local/lib/libopencv_core.dylib: Mach-O 64-bit dynamically linked shared library x86_64

file /usr/local/lib/libopencv_highgui.dylib /usr/local/lib/libopencv_highgui.dylib: Mach-O 64-bit dynamically linked shared library x86_64

这两个文件都是为适当的架构和(我认为)正确地添加到项目中而构建的。我怎样才能调试我可能遇到的其他链接器问题?我从哪里出发?

回答

7

cvtColor位于libopencv_imgproc.dylib中。把它添加到“链接二进制库”阶段,你应该很好。

+0

谢谢!我认为我在某个地方阅读过我只需要包括core和highgui,这个建议显然不适用于我正在构建的项目。 – Nick

+1

[The wiki](http://opencv.willowgarage.com/wiki/Mac_OS_X_OpenCV_Port)表示_Select libopencv_core.dylib,libopencv_highgui.dylib以及您的project_所需的任何其他库。 [OpenCV文档](http://opencv.itseez.com/)会告诉你哪个库包含你正在使用的功能。 – SSteve