我们有一个需要使用opencv的最新版本的应用程序,并且具有pkg-config可见性和共享库。但是,我们要在其上部署的Amazon EC2 AMI实例不包括用于编解码器的yum软件包或opencv软件包。
其他页面介绍了如何使用centOS og rpm软件包进行有效安装。我们需要全新安装,且没有yum / rpm交叉。
答案 0 :(得分:0)
这些步骤很可能是到达目标的较短路径之一。起始目录位置无关紧要,因为第一行可确保合理的(〜/ 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
亚马逊默认的pkg-config something-a-magic不会查看所有标准路径,因此下几行将相关* .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
通过命令
pkg-config --list-all检查pkg-config libav的可用性,并检查是否列出了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
最后一个技巧是同时为opencv启用pkg-config
cd /usr/share/pkg-config && ln -s `find /usr/local/ -name "opencv.pc"` . && cd ~/build
通过命令检查pkg-config的可用性
pkg-config --list-all
并检查是否列出了opencv。
完成