系统是windows 10
,源代码版本是opencv-4.3.0
。
在安装过程中,最大的问题在于要安装很多的第三方依赖。经过一番摸索,找到了一个很好的解决方法,那就是与vcpkg
搭配使用,利用vcpkg
来安装缺少的依赖。
安装vcpkg
github
网速较慢。从码云
的镜像下载vcpkg
:
cd e:\abc
git clone https://gitee.com/mirrors/vcpkg.git
然后编译:
cd vcpkg
bootstrap-vcpkg.bat
编译成功之后,就可以运行了。需要再这个目录下面运行。
vcpkg.exe version
运行截图:
vcpkg
编译包的时候要使用MSVC
。需要安装好。而且,它需要MSVC
安装了English
语言包,如果没有安装可以用visual studio installer
安装一下。这一点需要注意。
安装的格式是这样的:vcpkg.exe install [包名]:[架构]-[系统]
比如在windows
上安装x64
版本的zlib
包,指令如下:
vcpkg.exe install zlib:x64-windows
packages
文件夹包含了所有安装的包及其依赖包。到时候需要为cmake
设置这个搜索路径,以便找到我们安装的包。
构建opencv
我是从官网下载的4.3.0
版本。也可以从github
,或者码云
镜像下载最新版本。
打开cmake
,配置好source
文件夹和build
文件夹。前者是opencv
的根目录,后者一般是前者的子目录build
(不存在,会自动创建)。
点击Add Entry
,添加一项,名字是CMAKE_PREFIX_PATH
,类型是PATH
,值是E:/abc/vcpkg/packages
。这让cmake
可以搜索vcpkg
所安装的包。
还可以修改opencv
的CMakeLists.txt
文件,加入一行:
list(APPEND CMAKE_PREFIX_PATH E:/abc/vcpkg/packages)
要是考虑兼容操作系统,还可以加一个条件判断:
if(CMAKE_SYSTEM_NAME MATCHES Windows)
list(APPEND CMAKE_PREFIX_PATH E:/abc/vcpkg/packages)
endif()
点击Configure
,开始配置。
安装缺少的包
仔细查看cmake
的输出,如果提示缺少了什么包,你又需要它,那么就通过vcpkg
安装。然后点击Configure
重新构建,直到不再缺少任何包。
其他配置
输出说缺少PythonInterp
,最低版本3.2
。之前我的python
是用Anaconda
安装的,只有python2
。我只好直接安装了一个最新版的python
。然后手动修改PYTHON3_EXECUTABLE
的值。
有时候vcpkg
会莫名其妙卡住,随便按一些键就又继续执行了。
此外,还有一些其他的问题,有些包安装之后,还是找不到,比如OpenBLAS
,还显示LAPACK
不存在。我于是将With_LAPACK
设置为Off
。