Как запустить приложение OSX с OpenCV на Mac без установленного OpenCV

Я разрабатываю приложение OSX в Objective-C и OpenCV-2.4.12, используя XCode. Я следовал этому руководству по установке и этому руководству по установке для интеграции OpenCV. В основном во втором видео автор использует динамические библиотеки OpenCV (файлы.dylib).

Это отлично работает на моем Mac, но на другом Mac без установленного OpenCV приложение выдает ошибку, и я не могу открыть и запустить его. Я искал и думаю, что решение состоит в том, чтобы использовать статические библиотеки (файлы.a). Но я не могу понять, как заменить динамические библиотеки статическими библиотеками.

Какие статические библиотеки мне нужно использовать? Где я их нахожу? Как я связываю их в Xcode?

Мои настройки прямо сейчас:

Я добавил в проект libopencv_core.2.4.12.dylib, libopencv_highgui.2.4.12.dylib, libopencv_imgproc.2.4.12.dylib.

В путях поиска, которые я имею (как объяснено во втором видео):

  • Пути поиска в фреймворке: / usr / local / lib
  • Пути поиска в заголовке: / usr / local / include
  • Пути поиска в библиотеке: "OpenCVFolderPath" / build / lib

Спасибо.

1 ответ

Я склонен устанавливать OpenCV используя homebrew и если я посмотрю на параметры, которые я могу указать для OpenCV версии 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 не существует эквивалентной опции, хотя я не уверен, почему вы захотите использовать эту версию.

Другие вопросы по тегам