SLAM学习记录(2) --- Opencv3安装及问题处理

前言

装好了Eigen和Sophus之后,跑好了SLAM14讲第四讲之前的所有代码,在第五讲安装了曾经踩坑无数的OpenCV的,果不其然,又是各种bug,捣鼓了许久才搞好。现在记录一下。

一、OpenCV的安装?

1. 安装过程

第一步我们需要安装OpenCV相关的依赖库,保证安装的顺利进行;

$ sudo apt-get install cmake #安装cmake
$ sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

第二步,我们需要下载OpenCV的源码进行安装,下载地址在OpenCV的官网。https://opencv.org/releases/,下载对应版本的Source。
通过这种方法在国内下载的速度非常慢,可以使用在码云下在等方式解决。这里非常推荐另一个下载方式:https://blog.csdn.net/bookzhan/article/details/104753855。 这里怪兽自己搭建了服务器,同步了国外OpenCV的各个版本,对大家的帮助很大。
网站截图第三步,解压编译安装OpenCV。

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make -j$(nproc) // 使用nproc是读取CPU核心数
sudo make install

第四步,添加环境配置

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' #添加环境库
sudo ldconfig #更新系统库
sudo gedit /etc/bash.bashrc  
//在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH
sudo source /etc/bash.bashrc
//激活配置然后更新database
sudo updatedb  #配置bash并保存

安装结束。

二、安装使用中遇到的问题

1.安装中报错

  1. 安装过程中遇到了如下报错:
sudo: source: command not found

解决方法:

sudo -s
source /etc/profile

2.使用中报错

  1. 在使用OpenCV库的时候,遇到了未定义的引用错误:
CMakeFiles/opencv_example.dir/example.cpp.o:在函数‘main’中:
example.cpp:(.text+0x12c):对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用
example.cpp:(.text+0x21d):对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用
CMakeFiles/opencv_example.dir/example.cpp.o:在函数‘drawText(cv::Mat&)’中:
example.cpp:(.text+0x3fe):对‘cv::putText(cv::InputOutputArray const&, cv::String const&, cv::Point, int, double, cv::Scalar_, int, int, bool)’未定义的引用
CMakeFiles/opencv_example.dir/example.cpp.o:在函数‘cv::String::String(char const*)’中:
example.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4d):对‘cv::String::allocate(unsigned long)’未定义的引用
CMakeFiles/opencv_example.dir/example.cpp.o:在函数‘cv::String::~String()’中:
example.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14):对‘cv::String::deallocate()’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/opencv_example.dir/build.make:112: recipe for target ‘opencv_example’ failed
make[2]: * [opencv_example] Error 1
CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/opencv_example.dir/all’ failed
make[1]: * [CMakeFiles/opencv_example.dir/all] Error 2
Makefile:83: recipe for target ‘all’ failed
make: * [all] Error 2

这个原因是CMakeList.txt中缺少OpenCV库的路径。
解决方法:在CMakeList.txt中添加如下的语句,

find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries( HOG ${OpenCV_LIBS} )

问题即可解决。

本文许多知识来源:
在ubuntu16.04下安装opencv3.4.5(超详细)
hnsywangxin的CSDN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值