在 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 会导致链接器错误的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 上使用 OpenCV 的 OpenMP

将 CoreData 数据模型文件添加到 XCode 4.2 会导致源代码控制停止使用问号

无法让 OpenCV 框架符号在 XCode 中链接

Xcode 5.1 在 64 位模拟器上构建 opencv 失败

向 Xcode Cocoa 项目添加一个空的 .c 文件会导致数千个错误

在 XCode 上为 iOS 使用自定义构建的 OpenCV 会产生 ___sincos_stret 未定义符号