问题背景:最近在学习slam14讲,但我电脑安装的是双系统 win+ubuntu20.04
学习到ch5时候,需要用到opencv3 我在学习slam之前使用的 “小鱼一键安装ros”应该是帮我安装了opencv4
但slam14讲的ch5示例 用到opencv3
我使用pkg-config opencv --modversion 还是找不到
在ubuntu20.04上安装opencv3老是报错。
如下:
![](https://i-blog.csdnimg.cn/blog_migrate/962f2d9ecd87b8b62b6a5cd8e45e4bf3.png)
【解决方案】
ubuntu20.04上安装opencv3确实特别不好安装,网上查了大量的资料,最后安装成功了。
安装的opencv3版本为3.4.12 成功安装!
步骤如下:
1.先安装依赖(如果之前装了依赖 看哪个需要安装,网上也有非常多的教程)
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev
2.下载opecv包,并提取到某位置
下载路径:https://codeload.github.com/opencv/opencv
我使用的是3.4.12 https://docs.opencv.org/3.4.12/d7/d9f/tutorial_linux_install.html
然后进入解压后的文件夹,在终端打开
3.编译安装
接下来在命令行输入:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
(cmake 这步注意 最好和我一样)————————————————
注意,安装过程中可能会出现一个包ippicv下载过慢,则中断(ctrl+c中断)安装后,自己下载:
然后将下载下来的ippicv_linux_xxxxxx.tgz按照下面方式修改
修改ippcv cmaek, 在源码目录下3rdparty/ippicv/ippicv.cmake, ocv_download修改为下面这样,也就是原本是网址替换成自己存放ippcv tar的目录:file:///tmp/3rdparty/ippicv/。
ocv_download(FILENAME ${OPENCV_ICV_NAME}
HASH ${OPENCV_ICV_HASH}
URL
"${OPENCV_IPPICV_URL}"
"$ENV{OPENCV_IPPICV_URL}"
"file:///tmp/3rdparty/ippicv/"
DESTINATION_DIR "${THE_ROOT}"
ID IPPICV
STATUS res
UNPACK RELATIVE_URL)
接着 修改完成后
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
重新进行
make -j4
sudo make install
进行安装
之后就可以编译运行
4.但是 还有坑
fmt
ubuntu20.04还要添加这个
这是我的CmakeLists.txt
![](https://i-blog.csdnimg.cn/blog_migrate/c3572aa0a1eabe1213f60ce13a189d03.png)
并且运行的时候
把这些都放进build才能运行
![](https://i-blog.csdnimg.cn/blog_migrate/86b0188916c4112c63bbeb00843645da.png)
之后就能顺利运行了!!!
注意:每个内部的cmakelist我也进行了更改