OpenCV с libav для кодеков на Amazon EC2 AMI - PullRequest
0 голосов
/ 30 марта 2019

У нас есть приложение, которое требует opencv в последней версии с видимостью pkg-config и общими библиотеками для сборки. Однако экземпляры Amazon EC2 AMI, на которых мы развертываем, не включают ни пакеты yum для кодеков, ни пакет opencv.

Другие страницы описывают, как использовать пакеты centOS и rpm для получения работающей установки. Нам нужна чистая установка без пересечения yum / rpm.

1 Ответ

0 голосов
/ 30 марта 2019

Эти шаги, скорее всего, являются одним из коротких путей к цели.Местоположение начального каталога не имеет значения, так как первая строка гарантирует нормальный (~ / build) начальный рабочий каталог:

cd ~/ && mkdir build && cd build/
sudo yum install git cmake gcc-c++

Сборка libav для кодеков (опция --prefix, вероятно, не нужна, но это проверенои рабочая версия)

wget https://libav.org/releases/libav-12.3.tar.xz
tar xzf libav-12.3.tar.gz
mkdir libav-12.3-build && cd libav-12.3-build
/home/ec2-user/build/libav-12.3/configure --prefix=/usr --enable-shared --disable-static
make && sudo make install

По умолчанию в программе amazon по умолчанию pkg-config вещь не учитывает все стандартные пути, поэтому следующие строки символически связывают соответствующие файлы * .pc с местом, где находится pkg-config (используется opencv) может найти их.

cd /usr/share/pkgconfig
for t in `find /usr -name "libav*.pc"`; do sudo ln -s $t .; done
cd ~/build

Разделяемые библиотеки libav также должны быть доступны компоновщику

echo /usr/lib/ > libav.conf
sudo mv libav.conf /etc/ld.so.conf.d/
sudo ldconfig

Проверьте доступность libav pkg-config с помощью команды

pkg-config --list-all
и убедитесь, что libavcodec,Перечислены пакеты libavformat, libav ... и т. д.

На этом этапе библиотека opencv может быть собрана и установлена ​​с использованием инструментов по умолчанию

git clone https://github.com/Itseez/opencv.git
mv opencv opencv.git
cd opencv.git/
git branch -r
git checkout 3.4
cd .. && mkdir opencv && cd opencv
cmake ../opencv.git/ && make && sudo make install
cd ..

В конечном двоичном файле требуется путь компоновщикасодержит путь '' '/ usr / local / lib64' ''.

echo /usr/local/lib64 > opencv.conf
sudo mv opencv.conf /etc/ld.so.conf.d/
sudo ldconfig

Последний трюк - это включение pkg-config для opencv

cd /usr/share/pkg-config && ln -s `find /usr/local/ -name "opencv.pc"` . && cd ~/build

Проверьте pkg-конфигурировать доступность командой

pkg-config --list-all

и проверить, что opencv присутствует в списке.

Готово

...