在 Xcode 项目中使用 OpenCV 会导致链接器错误
Posted
技术标签:
【中文标题】在 Xcode 项目中使用 OpenCV 会导致链接器错误【英文标题】:Using OpenCV in Xcode project gives linker errors 【发布时间】:2011-09-24 00:05:32 【问题描述】:通过他们的 cmake 过程构建和安装 opencv 后,我采取了一些建议的步骤将库集成到 Xcode 项目中。
我在构建阶段为 libopencv_core.dylib 和 libopencv_highgui.dylib 使用“链接二进制文件” “标头搜索路径”包含 /usr/local/include/ 和 /usr/include/(opencv 标头本身位于 /usr/local/include/opencv2 中,我已尝试将其包含在内) “库搜索路径”包含 /usr/local/lib 和 /usr/lib(opencv dylib 文件位于 /usr/local/lib/)然后我添加了一些演示 opencv 代码。当我运行这个项目时,我收到了你所期望的链接问题的错误:
Apple Mach-O Linker Error:
Undefined symbols for architecture x86_64:
"_cvCvtColor", referenced from:
在我包含的 dylib 上使用 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
这两个文件都是为正确的架构而构建的,并且(我认为)正确地添加到了项目中。如何调试我可能遇到的其他链接器问题?我从这里去哪里?
【问题讨论】:
【参考方案1】:cvtColor
在 libopencv_imgproc.dylib 中。将其添加到“Link Binary with Libraries”阶段,你应该会很好。
【讨论】:
谢谢!我想我在某处读到过,我只需要包含 core 和 highgui,而且该建议显然不适用于我正在构建的项目。 The wiki 说选择 libopencv_core.dylib、libopencv_highgui.dylib 以及您的项目所需的任何其他库。 OpenCV Documentation 会告诉你哪个库包含你正在使用的函数。以上是关于在 Xcode 项目中使用 OpenCV 会导致链接器错误的主要内容,如果未能解决你的问题,请参考以下文章
将 CoreData 数据模型文件添加到 XCode 4.2 会导致源代码控制停止使用问号
Xcode 5.1 在 64 位模拟器上构建 opencv 失败