1

(我在这里讨论的几乎所有内容都是新手......如果问题非常基本,我很抱歉) - 我使用 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 多个错误。这是其中之一:

架构 x86_64 的未定义符号:“_gzputs”,引用自:libopencv_core.a(persistence.o) 中的 __ZL7icvPutsP13CvFileStoragePKc

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

谢谢大家!

4

1 回答 1

2

您需要.a来自$OPENCV_BUILD_PATH/3rdparty/lib/.

你的_gzputs问题属于libzlib.a


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

于 2012-06-21T00:11:53.553 回答