https://blog.csdn.net/learning_tortosie/article/details/80594399
前言
在开发不同工程时可能会需要不同版本的OpenCV,因此在电脑上安装多个版本的OpenCV很有必要。
很多人不敢尝试是担心出问题,其实这并不难,成功的关键是安装到不同的路径,并在CMakeList.txt中找到需要的版本。
多版本OpenCV共存
假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。
如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径,否则会覆盖掉之前的版本。
下载OpenCV
首先去https://opencv.org/releases.html下载所需版本的Sources版,也可去https://github.com/opencv/opencv/tree/3.4.1下载。
假设我们安装的第二个OpenCV版本为3.4.1。
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
编译安装OpenCV
详见官方文档https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html,参考步骤如下。
$ cd opencv-3.4.1 $ mkdir build $ cd build $ mkdir installed $ cmake \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_INSTALL_PREFIX=~/opencv-3.4.1/build/installed \ \ -DWITH_CUDA=OFF \ \ -DBUILD_DOCS=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ .. $ make -j4 $ sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
说明
1. 其中~/opencv-3.4.1/build/installed为安装OpenCV3.4.1的路径,这个十分关键。
2. 设置OFF的理由如下,可大大加快编译速度,当然还要根据需求进行设置。
多版本OpenCV切换
打开~/.bashrc
$ gedit ~/.bashrc
- 1
在文件末尾增加以下内容
export PKG_CONFIG_PATH=~/opencv-3.4.1/build/installed/lib/pkgconfig export LD_LIBRARY_PATH=~/opencv-3.4.1/build/installed/lib
- 1
- 2
更新~/.bashrc
$ source ~/.bashrc
- 1
查询OpenCV版本
$ pkg-config --modversion opencv
- 1
如果输出3.4.1,就表明配置成功。
如果想使用之前的版本,在~/.bashrc中注释掉增加的内容,然后source ~/.bashrc即可。
如果只有一个版本的OpenCV,在CMakeList.txt中使用以下语句即可。
FIND_PACKAGE(OpenCV REQUIRED)
- 1
在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。
存在多版本OpenCV时,需要找到所需版本对应的OpenCVConfig.cmake文件,并将其路径添加到工程的CMakeLists.txt中。
示例如下:
cmake_minimum_required(VERSION 2.8) set(OpenCV_DIR "~/opencv-3.4.1/build") project(test) find_package(OpenCV REQUIRED)
- 1
- 2
- 3
- 4
到这里,举一反三即可。