linux下多版本opencv共存问题

在linux下编译工程是一件很头疼的事情,有时候一个工程需要用到opencv2.X版本,有时候需要用到3.X版本,有时候便捷的办法也只是分别在opencv2.X文件夹重新编译,覆盖之前的版本。下面说一种比较简单的方法。
首先确保电脑李有下载好的两个opencv文件夹。比如博主是这样的,放在主文件夹下:
linux下多版本opencv共存问题_第1张图片
都进行过安装,也就是都在各自build文件执行过

cmake ..
make 
sudo make install

那么,如果你经常使用Python,想要调用opencv2.X版本,那就先执行opencv3.X版本的安装,后执行opencv2.X的安装,这样,opencv2.X就把3.X覆盖。Python中的opencv版本就会如下所示
linux下多版本opencv共存问题_第2张图片

但是你的Cmake工程,经常会调用opencv3.X版本,但是难道又执行一遍上述命令吗?这是一件很耗费时间的事情,当然,有更加方便的问题让各位方便调用opencv,只要执行过一次的opencv3.X版本的编译安装,哪怕它已经被opencv2.X版本覆盖,这都没有关系。
找到你的CmakeLists.txt 打开之后,设置opencv的路径,添加类似如下一行,(找到你需要设置的opencv版本的build文件夹,不能完全复制,因为这是博主自己的文件夹)。

set( OpenCV_DIR "/home/andy/opencv-3.1.0/build")

这样就指定了你的opencv的版本,编译的时候也不会报错。博主添加的位置大致如下:
这里写图片描述
这样编译就不会出错了。
反过来也是一样,欢迎指正交流。

你可能感兴趣的:(机器人开发,slam,opencv)