这里具体指当我们不想使用系统默认版本时的指定方法。比如系统默认的版本为opencv2.4.9,而我们建立的project需要使用opencv3.4,比如opencv3.4安装在/opt/utility/下。
1. cmake编译
ubuntu下经常使用cmake编译形成makefile,cmake编译主要依赖CMakeLists.txt。当使用到opencv时,由于opencv2和opencv3之间有些许区别,有些库并不相同,那么当系统中同时安装多个opencv时在cmake编译时如何指定版本呢?
非常简单的方法,即在CMakeLists.txt中指定opencv路径即可。
需要知道的是,当安装好opencv时,会在其目录下产生一个OpenCVConfig.cmake文件。这个文件中指定了的CMake要去哪里找OpenCV的,其的.h文件在哪里等,比如其中一行:
(OpenCV_INCLUDE_DIRS “ /home/ubuntu/src/opencv-3.1.0/build ” “ /home/ubuntu/src/opencv-3.1.0/include ” “ /家/ Ubuntu的/ src目录/opencv-3.1.0/include/opencv “)
我们只需要将OpenCVConfig.cmake的路径添加到CMakeLists.txt中即可。具体是:
在对应project的CMakeLists.txt文件中找到
find_package(OpenCV REQUIRED
然后在上面添加OpenCVConfig.cmake的路径,比如:
set(OpenCV_DIR“/home/ubuntu/src/opencv-3.1.0/build”)
注意OpenCVConfig.cmake的位置根据不同安装方法或版本的不同而存在于不同位置,比如下面的添加方法:
set(OpenCV_DIR “/opt/utility/opencv-3.4/share/OpenCV”)
2. 系统环境中修改默认opencv版本
在~/.bashrc中设置环境变量:
export PKG_CONFIG_PATH=~/opencv-3.4.1/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=~/opencv-3.4.1/build/installed/lib
注意先看opencv安装文件后再进行路径指定。主要查找lib位置和pkgconfig位置,比如有版本为:
export PKG_CONFIG_PATH=~/opencv-3.4/lib/pkgconfig
export LD_LIBRARY_PATH=~/opencv-3.4/lib
然后再终端查看默认版本:
pkg-config --modversion opencv