Ubuntu同时安装OpenCV2和OpenCV3

来源:互联网 发布:魔兽盒子mac版 编辑:程序博客网 时间:2024/06/07 01:20

Ubuntu同时安装OpenCV2和OpenCV3


我用的是ubuntu14.04,之前已经安装了OpenCV2(默认的安装路径是/usr/local),现在需要安装OpenCV3.2,但是又不想将opencv2删除,怎么办???对,在别的地方安装。

1、首先,下载好opencv3.2(download: https://github.com/opencv/opencv/archive/3.2.0.zip)后,将源码解压2、修改CMakeLists.txt文件。

2、将默认的安装路径:/usr/local修改为你要安装的路径

set(CMAKE_INSTALL_PREFIX "/home/alan/slambook/opencv3" CACHE PATH "Installation Directory")

3、接着编译,很简单,

cmake ..makemake install

4、CMake下指定Opencv版本

最后就是如何在工程中加入opencv3.2的库和头文件。这里需要改变一下,否则很容易链接到位于/usr/local下的opencv2。

关键文件:OpenCVConfig.cmake。在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等,比如其中一行:

# Provide the include directories to the callerset(OpenCV_INCLUDE_DIRS "/home/ubuntu/src/opencv-3.1.0/build" "/home/ubuntu/src/opencv-3.1.0/include" "/home/ubuntu/src/opencv-3.1.0/include/opencv")

只要让CMake找到这个文件,这个文件就指定了Opencv的所有路径,因此设置OpenCV_DIR为包含OpenCVConfig.cmake的目录,如在我的C++工程CMakeLists.txt中添加

在工程文件中的CMakeLists.txt加上:

set(OpenCV_DIR "/home/ubuntu/src/opencv-3.1.0/build")

来重新制定opencv的安装路径,因为安装opencv2时已经生成了系统变量OpenCV_DIR = /usr/local/share/opencv,所以需要用set来改变这个变量的值,新的路径为与文件OpencvConfig.cmake路径相同。
注意:这个OpencvConfig.cmake文件里面定义了一堆变量,可以在这里面查阅使用。如OpenCV_INCLUDE_DIRS 、OpenCV_LIBS 等。

我的OpenCVConfig.cmake在

/home/ubuntu/src/opencv-3.1.0/build

注意,将其添加在project(MyProjectName)之前。

如CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 2.8)set(OpenCV_DIR "/home/ubuntu/src/opencv-3.1.0/build")project( camera )find_package( OpenCV REQUIRED )add_executable( camera camera.cpp )target_link_libraries( camera ${OpenCV_LIBS} )

因此,我们期望使用哪个版本的Opencv,只要找到对应的OpenCVConfig.cmake文件,并且将其路径添加到工程的CMakeLists.txt中即可了。

原创粉丝点击