由于uabntu20自带opencv4
但是有些工程需要用到opencv3,所以需要再安装opencv3,但是一定不要安装在系统目录下。按照一下步骤操作。
去官网下载opencv3
Release 3.4.20 · opencv/opencv · GitHub
解压,进入目录
cmake -B build -GNinja -DCMAKE_INSTALL_PREFIX=~/myLIB/lib/opencv-3.4.20_install
命令解释:
-B build :在当前目录创建一个build文件夹,然后构建到build文件夹里
-GNinja : 指定生成用Ninja来构建的项目,默认是-GUnix(用make构建)
-DCMAKE_INSTALL_PREFIX=~/lib/opencv4.9.0_install : 指定安装目录,否则默认安装到系统目录:/usr/lib,usr/include,这里是多版本共存的关键,指定一个自定义的目录(最好别是系统目录),比如我就在~/lib/opencv4.9.0_install中
注意:该命令执行过程中可能会连外网下载本地缺失的文件,建议科学上网设置好https代理
cmake命令执行完毕后,build目录多了一大堆文件,如下图所示:
继续在当前目录,然后执行命令:
cmake --build build/
编译时间很长
编译完成后执行命令:
cmake --install build/
执行这个命令,将编译好的库和头文件以及cmake文件复制到之前指定的CMAKE_INSTALL_PREFIX里,如下图所示:
在非系统目录下安装完成opencv3,接下来用cmake怎么使用:
在CMakeLists.txt文件里设置cmake环境变量
<PackageName>_ROOT (支持查找子目录,但是需要设置cmp0074策略)或 <PackageName>_DIR(不支持子目录查找,必须指定OpenCVConfig.cmake所在目录)。
设置<PackageName>_DIR
查看一下OpenCVConfig.cmake文件所在目录:
cmake_minimum_required(VERSION 3.0)
project(Demo)
set(OpenCV_DIR "~/myLIB/lib/opencv-3.4.20_install/share/opencv") #对应上面刚查的目录
find_package(OpenCV 3.4.20 REQUIRED)
message("find ${OpenCV_VERSION}")