ubuntu16.04 使用ROS Kinetic自带的opencv3.1.1

当我们配置完ROS Kinetic之后,就已经自动安装了opencv3.1.1,如何使用自带的opencv而不用自己重新安装呢?根据以下几步搞定:

一、找到自带的opencv路径

当然ROS自带的opencv路径其实都是一样的,但是防止意外,给出全部修改原理流程。

sudo find / -iname "*opencv*"

找到这一行
ubuntu16.04 使用ROS Kinetic自带的opencv3.1.1_第1张图片
如此我们ROS自带的opencv路径就是:

/opt/ros/kinetic/share/Opencv-3.3.1-dev

二、修改项目CMakeLists.txt

  • 正常情况下(普遍适用):
    1、找到项目的CMakeLists.txt,并编辑,在find_package()前加入:
set(OpenCV_DIR /opt/ros/kinetic/share/Opencv-3.3.1-dev)
  • 非正常情况下:
    ubuntu16.04 使用ROS Kinetic自带的opencv3.1.1_第2张图片

2、然后在最后添加库类路径(也就是add_executable()之前):

include_directories(include ${OpenCV_INCLUDE_DIRS})
include_directories(include ${catkin_INCLUDE_DIRS})

3、在链接库的时候把opencv和catkin库加上(也就就是在target_link_libraries()中):

target_link_libraries(test ${OpenCV_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}

ps: test 就是我们链接库的对象,是从test.cpp编译出来的,该方法就是cmake添加第三方库的方式。

三、重新编译

1、进入工作空间
注意: ~/catkin_ws路径根据自己实际修改!

cd ~/catkin_ws

2、删除编译文件

rm devel build -r

3、重新编译

catkin_make

你可能感兴趣的:(解决方案,环境配置,Linux,opencv,自动驾驶,c++)