xcode - 在 Xcode 中链接 OpenCV 静态库

标签 xcode opencv build static-libraries

(我几乎不熟悉我将在这里讨论的所有内容...如果问题非常基础,我深表歉意)- 我使用 Xcode 使用 OpenCV(动态库)编写了一些 C++ 代码。该算法运行顺利,我创建了一个同样有效的可执行文件。但是,它只适用于我的电脑。

我明白我需要使用静态库而不是动态库。我做了一些研究,并找到了如何在此处执行此操作:http://www.shiffman.net/2011/01/23/how-to-build-opencv-static-libraries-mac-os-x/在这里:http://www.randomsequence.com/articles/opencv-snow-leopard/ .

我已按照这些步骤进行操作,尽管我必须进行一些更改,但我能够构建“.a”文件,例如“libopencv_highgui.a”。

但是,当我替换库时,我的代码不再工作。我收到 200 多个错误。这是其中之一:

Undefined symbols for architecture x86_64: "_gzputs", referenced from: __ZL7icvPutsP13CvFileStoragePKc in libopencv_core.a(persistence.o)

我在这里搜索过这个问题,但这是我能找到的最接近的问题:Linking OpenCV libraries in Xcode (不完全相同的问题)。

谢谢大家!

最佳答案

您需要 $OPENCV_BUILD_PATH/3rdparty/lib/ 中的 .a 文件。

您问题中的 _gzputs 属于 libzlib.a


要链接 OpenCV 静态库,您还需要将所有 OpenCV 的依赖项添加到您的应用程序中。这些依赖项中的大部分来自 opencv_highui 模块,依赖项列表取决于您的构建配置,因此我无法告诉您完整列表。但您可以自己找到它:使用任何文本编辑器从您的 OpenCV 构建目录打开 CMakeCache.txt 并搜索 opencv_highgui_LIB_DEPENDS 行。您需要该行中除单词 general 之外的所有项目。

关于xcode - 在 Xcode 中链接 OpenCV 静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129418/

相关文章:

SVN+SSH连接报错210002,网络连接意外关闭

c++ - 透视矩阵的旋转角度

opencv - cvBlobsLib 的特征向量和特征值

android - 识别非官方 Android 设备

c++ - 使用 SFML 库在 Xcode 中调试期间不显示变量值

iphone - 自动布局调整图像大小比例为 50%

ios - 从运行循环中删除 CADisplayLink 时,游戏有时会崩溃

opencv - 如何在极坐标中找到垂直线?

visual-studio-2010 - 禁止在构建时创建 *.vshost.exe 和其他文件

android - Android 的构建时间参数