0更新yum源,使用阿里源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo_bak
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
1 fatal error: boost/shared_ptr.hpp: No such file or directory
缺少或者boost库损坏,直接安装即可:
yum install boost
yum install boost-devel
yum install boost-doc
2 安装glog
下载
git clone https://github.com/google/glog
配置
yum install autoconf automake libtool
编译&安装
进入源码根目录(glog文件夹)
./autogen.sh
./configure
make -j 24
sudo make install
2 安装gflag
下载
git clone https://github.com/gflags/gflags
进入源码目录(即gflags文件夹) ,有的时候需要动态库,必须增加BUILD_SHARED_LIBS=ON,默认情况下是静态库:
cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON ..
make -j 24
sudo make install
上面的这些选项就是动态库和静态库的选项,都打开就可以了,然后默认安装目录是:/usr/local,可以使用命令: ls /usr/local/lib/libgflags* -l 验证一下动态库是不是存在
如果动态库都正常则安装成功了,默认头文件目录是/usr/local/include,库目录是/usr/local/lib,如果其他软件依赖于gflags那么在编译阶段系统会自动调用/usr/和/usr/local下面对应的库;在运行阶段可能会提示so不存在的情况,这时候只需要将动态库目录加入LD_LIBRARY_PATH或者添加/etc/ld.so.conf配置均可,比如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 然后就可以了.
3 安装protobuf-2.6.1
下载
https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
解压安装
tar -xvf protobuf-2.6.1.tar.gz //解压文件
cd protobuf-2.6.1
./configure --prefix=/usr/local/protobuf //prefix是pkg-config里的参数,软件安装在这个文件夹
make
make check
make install //视情况看要不要加sudo
4 安装ffmpeg — opencv编译使用的ffmpeg一定要匹配
下载:官网下载linux版本的ffmpeg源码包 ffmpeg-4.1.tar.xz
https://johnvansickle.com/ffmpeg/release-source/
解压安装
./configure --prefix=../ffmpeg/ --disable-shared --enable-static --enable-postproc --enable-avressample --enable-gpl --enable-pic --disable-x86asm
make -j
make install ----安装到../ffmpeg/
我遇到一个问题,我编译opencv使用的是ffmpeg-3.4.6(历史原因),而SDK中用了4.1的版本,导致opencv库总是错误,所以一定要版本对应。
添加pkg-config,添加 /usr/local/ffmpeg/lib到下面的文件中
vim /etc/ld.so.conf
ldconfig
增加环境变量:
vim /etc/profile
. /etc/profile 或者source /etc/profile
上面的环境变量对ubuntu重启shell有效,centos无效,centos可以修改下面的文件:
vim /etc/bashrc
添加 export PATH=$PATH:/usr/local/ffmpeg/bin
5 安装OpenBLAS
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make
sudo make install
自动安装到了/opt/OpenBLAS,同样需要添加环境变量
vim /etc/profile
vim /etc/bashrc
添加 export LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH