Запуск исполняемого файла opencv с другого компьютера

0

Я создал opencv proj в Ubuntu 12.04. Я хочу просто отправить исполняемый файл и необходимые файлы на другой компьютер. Как это возможно? Что я должен включить в исполняемый файл? Нужно ли включать файлы из библиотеки opencv? Я обнаружил, что у меня должно быть статическое связывание при построении библиотеки opencv. Я использовал указанный выше файл для установки opencv, который я нашел в документации:

version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9])+' | cut -c2-)"
echo "Installing OpenCV" $version
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -qq remove ffmpeg x264 libx264-dev
echo "Installing Dependenices"
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
echo "Downloading OpenCV" $version
wget -O OpenCV-$version.tar.gz  http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".tar.gz/download
echo "Installing OpenCV" $version
tar -xvf OpenCV-$version.tar.gz
cd opencv-$version
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D  BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D  INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make -j2
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "OpenCV" $version "ready to be used"

Нужно ли снова строить opencv? Как я могу достичь статической привязки?

Теги:
opencv
executable

1 ответ

1
Лучший ответ

Вы можете запустить:

ldd <your executable name>

Получить список всех разделяемых библиотек, от которых зависит ваш проект.

Скопируйте библиотеки на целевой компьютер.

На целевом ПК вам нужно определить переменную env:

export LD_LIBRARY_PATH=<location of all the libraries your project depends on>

И запустить исполняемый файл в той же оболочке.

РЕДАКТИРОВАТЬ:

Если вы хотите скомпилировать статические библиотеки OpenCV, используйте:

cmake -DBUILD_SHARED_LIBS = OFF...

https://github.com/Itseez/opencv/blob/master/CMakeLists.txt#L162

Надеюсь, поможет...

  • 0
    Да, не то решение, которое я ищу. Я хочу статически связать исполняемый файл с libs, чтобы можно было запустить исполняемый файл на другом компьютере без установки библиотеки opencv.
  • 0
    Да, но где я должен это разместить? В какой строке или не важно ??
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню