我正在Objective-C和OpenCV-2.4.12中使用Xcode开发一个OSX应用程序。我遵循了这个安装视频指南和这个设置视频指南来集成OpenCV。基本上在第二个视频中,作者使用了OpenCV动态库(.dlib文件)。
这在我的mac上运行得很好,但在另一台没有安装OpenCV的mac上,应用程序出现错误,我无法打开并运行它。我已经搜索过了,我认为解决方案是使用静态库(.a文件)。但是我不知道如何用静态库替换动态库。
我需要使用哪些静态库?我在哪里找到它们?如何在Xcode中链接它们?
我现在的设置:
我在项目中添加了libopencv_core.2.4.12.dylib、libopencv_higgui.2.4.12.dylib、libopenc_imgproc.2.4.12.dylib
在我的搜索路径(如第二个视频中所解释的):
- 框架搜索路径:/usr/local/lib
- 标题搜索路径:/usr/local/include
- 库搜索路径: "OpenCVFolderPath"/build/lib
谢谢。
我倾向于使用homebrew
安装OpenCV,如果我查看可以为OpenCV Version 3指定的选项,如下所示:
brew options opencv3
我得到这个输出:
--32-bit
Build 32-bit only
--c++11
Build using C++11 mode
--with-contrib
Build "extra" contributed modules
--with-cuda
Build with CUDA v7.0+ support
--with-examples
Install C and python examples (sources)
--with-ffmpeg
Build with ffmpeg support
...
...
--with-python3
Build with python3 support
--with-qt
Build the Qt4 backend to HighGUI
--with-qt5
Build the Qt5 backend to HighGUI
--with-quicktime
Use QuickTime for Video I/O instead of QTKit
--with-static <--- *** HERE ***
Build static libraries
--with-tbb
Enable parallel code in OpenCV using Intel TBB
--with-vtk
Build with vtk support
--without-eigen
Build without eigen support
--without-numpy
Use a numpy you've installed yourself instead of a Homebrew-packaged numpy
--without-opencl
Disable GPU code in OpenCV using OpenCL
--without-openexr
Build without openexr support
--without-python
Build without Python support
--without-test
Build without accuracy & performance tests
--HEAD
Install HEAD version
所以,如果我继续这样安装:
brew install opencv3 --with-static
我最终得到了这些静态库,它们看起来像你想要的:
ls -l /usr/local/Cellar/opencv3/3.1.0_3/lib/
-r--r--r-- 1 mark admin 1922864 21 Jul 14:23 libopencv_calib3d.a
-r--r--r-- 1 mark admin 3215896 21 Jul 14:23 libopencv_core.a
-r--r--r-- 1 mark admin 965336 21 Jul 14:23 libopencv_features2d.a
-r--r--r-- 1 mark admin 650552 21 Jul 14:23 libopencv_flann.a
-r--r--r-- 1 mark admin 60016 21 Jul 14:23 libopencv_highgui.a
-r--r--r-- 1 mark admin 378128 21 Jul 14:23 libopencv_imgcodecs.a
-r--r--r-- 1 mark admin 3946248 21 Jul 14:23 libopencv_imgproc.a
-r--r--r-- 1 mark admin 954296 21 Jul 14:23 libopencv_ml.a
-r--r--r-- 1 mark admin 542808 21 Jul 14:23 libopencv_objdetect.a
-r--r--r-- 1 mark admin 1078504 21 Jul 14:23 libopencv_photo.a
-r--r--r-- 1 mark admin 269248 21 Jul 14:23 libopencv_shape.a
-r--r--r-- 1 mark admin 694056 21 Jul 14:23 libopencv_stitching.a
-r--r--r-- 1 mark admin 193416 21 Jul 14:23 libopencv_superres.a
-r--r--r-- 1 mark admin 478776 21 Jul 14:23 libopencv_video.a
-r--r--r-- 1 mark admin 149040 21 Jul 14:23 libopencv_videoio.a
-r--r--r-- 1 mark admin 390288 21 Jul 14:23 libopencv_videostab.a
drwxr-xr-x 3 mark admin 102 21 Jul 14:23 pkgconfig
drwxr-xr-x 3 mark admin 102 21 Jul 14:23 python2.7
OpenCV2似乎没有等效的选项,尽管我不确定你为什么要使用那个版本。