在linux下编译工程是一件很头疼的事情,有时候一个工程需要用到opencv2.X版本,有时候需要用到3.X版本,有时候便捷的办法也只是分别在opencv2.X文件夹重新编译,覆盖之前的版本。下面说一种比较简单的方法。
首先确保电脑李有下载好的两个opencv文件夹。比如博主是这样的,放在主文件夹下:
都进行过安装,也就是都在各自build文件执行过
cmake ..
make
sudo make install
那么,如果你经常使用Python,想要调用opencv2.X版本,那就先执行opencv3.X版本的安装,后执行opencv2.X的安装,这样,opencv2.X就把3.X覆盖。Python中的opencv版本就会如下所示
但是你的Cmake工程,经常会调用opencv3.X版本,但是难道又执行一遍上述命令吗?这是一件很耗费时间的事情,当然,有更加方便的问题让各位方便调用opencv,只要执行过一次的opencv3.X版本的编译安装,哪怕它已经被opencv2.X版本覆盖,这都没有关系。
找到你的CmakeLists.txt 打开之后,设置opencv的路径,添加类似如下一行,(找到你需要设置的opencv版本的build文件夹,不能完全复制,因为这是博主自己的文件夹)。
set( OpenCV_DIR "/home/andy/opencv-3.1.0/build")
这样就指定了你的opencv的版本,编译的时候也不会报错。博主添加的位置大致如下:
这样编译就不会出错了。
反过来也是一样,欢迎指正交流。