Как запустить библиотеку C ++ с OpenCV на другом компьютере (linux)? - PullRequest
1 голос
/ 25 августа 2011

Я написал небольшой проект с использованием C ++, OpenCV 2.2 и g ++ в Ubuntu 11.04. Мне нужно сделать библиотеку (.so было бы лучше), но я хочу, чтобы она работала на другом компьютере без установленного OpenCV.
Я пытался создать динамическую библиотеку, используя флаги -shared и -fPIC для g ++, и скопировал OpenCV .so libs в рабочий каталог. На самом деле мне нужны только core и feature2d, но на самом деле он запрашивал множество других библиотек, включая highgui, который также имеет много зависимостей.
Я пробовал статическое связывание, используя флаги -Wl, -Bstatic, но также безуспешно. У кого-то были такие же проблемы? Буду признателен за любую помощь.

1 Ответ

3 голосов
/ 25 августа 2011

Можно собирать OpenCV без зависимостей от системных библиотек. Чтобы отключить все зависимости для OpenCV 2.2 в Linux, вы можете запустить cmake со следующими аргументами:

cmake -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_EIGEN2=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_OPENEXR=OFF -DWITH_PVAPI=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_UNICAP=OFF -DWITH_V4L=OFF -DWITH_XINE=OFF -DUSE_IPP=OFF -DOPENCV_BUILD_3RDPARTY_LIBS=ON ..

Но в этом случае вы не сможете использовать многие функции из модуля highgui:

  • чтение и запись видео
  • работа с камерой
  • все функции, работающие с GUI (например, imshow)
...