视觉slam十四讲——ch5安装openCV库——遇到问题及解决办法

1.安装依赖
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

出现报错:

解决:将代码改为

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

又出现报错:

“E: 无法定位软件包 libjasper-dev“

解决:

# 打开软件源配置文件,按“i”进行插入编辑
 sudo vim /etc/apt/sources.list 
# 末尾增加一行,并按ESC 、按:x保存退出
deb http://security.ubuntu.com/ubuntu xenial-security main
# 更新软件源
sudo apt-get update
# 查询是否可以找到该软件,无返回则说明增加的软件源无效或未更新成功。
apt-cache search libjasper-dev
# 进行该软件安装
sudo apt-get install libjasper-dev

再在终端中输入

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

就不会报错了。

2.下载opencv库压缩包

在网站(Releases - OpenCV)中下载openCV3.1.0版本(和视觉slam14讲配套)压缩包并解压到目标路径下。

3.cmake

然后进入解压后的文件夹,在终端中打开 接下来在命令行输入:

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
make -j4
sudo make install

值得注意的是,

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

这里一定要指定安装路径,注意这里与官网不一样!

注意,安装过程中可能会出现一个包ippicv下载过慢,则中断安装后,自己在浏览器下载: https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz 然后将下载下来的ippicv_linux_20151201.tgz 放入opencv3(让你指定的下载路径嘛)下面的: 3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e里即可。

然后重新继续安装 中间若报错: fatal error: stdlib.h: 没有那个文件或目录 则cmake预编译修改为:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D ENABLE_PRECOMPILED_HEADERS=OFF ..

主要是加了一个参数:-D ENABLE_PRECOMPILED_HEADERS=OFF

4.在make -j4时又出现问题:
问题一:

2-错误原因:缺少几个关键的宏定义 3-解决方法: 在相应头文件中添加宏定义即可,如图可以看到是cap_ffmpeg_impl.hpp

则在opencv-3.2.0/modules/videoio/src/cap_ffmpeg_impl.hpp中添加

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020

问题二:

Genetating error: constant l_MAGIC_VAL(cname=cv::l::MAGIC_VAL)already exists

解决方式:这个问题应该不是很常见,但是很坑爹,编译接近100%的时候才报错,有人推荐使用cmake-gui配置cmake的选项,关闭BUILD_opencv_python2与BUILD_opencv_pyhton3。我觉得使用cmake命令时,如同问题1,加上如下参数即可(如果我没再更新代表此方法可行)

-DBUILD_opencv_python2=OFF -DBUILD_opencv_pyhton3=OFF

则最终为:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D ENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_pyhton3=OFF ..

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值