前言:
头皮发麻
前言
主要解决问题:
(1)找不到opencv_word.dll
(2)找不到pdb文件
(3)cmake下生成install目录的方法
镜像源链接:
https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/
一、单纯只是想使用openCv的配置方法。
(1)网上下载下来的opencv主要有两个版本,一个是exe版本的,一个含有cmakelist版本的。
对于单纯只是想使用opencv的,建议使用exe版本,因为简单易上手。
(2)网上说有很多出现找不到dll文件,说可以把lib文件复制到system32目录下的,其实还有其他方法
看到我们的vs目录配置
注意到这里是对应着我们的path路径的
而我们看下path路径下是什么
第一个就是我们要配置的opencv目录,注意看这个路径下面就是system32!!!
为什么会找不到,因为你在正常构建新的环境变量的时候,新的环境变量是在sysytem32下面的,所以系统会先跑到这个目录下而不是你的目录下(这也是为什么复制过去可以解决问题的原因)
解决方法:配置完后需要向上把自己的路径移动到顶层!!
坑点:配完环境变量要重启,否则不会生效
其余exe下的配置可以参考下面这篇好文
二、cmake版本opencv配置(需查看源码的可看)
看源码—建议opencv的4以上版本
不看源码–各个版本都可以
1.cmake
cmake版本的opencv下载下来的特点就是有一个cmakelist,这个东西告诉了cmake怎么编译代码生产open.sln文件
(1)使用cmake的时候
注意用cmake命令打开的时候,得先将cmake的环境变量配置好,否则会报找不到cmake的错误(或者直接找到exe文件打开)都可以
(2)选择源文件目录和目标目录
注意要新建一个build文件夹存放生成的结果
(3)编译好了之后我们可以得到open.sln,点击进入。
(4)这个时候网上很多资料都说有一个install目录,但是当你自己配置的时候,是发现没有的。
这里需要使用到vs的批生成功能,选择下面四个后生成即可
图片来自于csdn的chasentech
大佬
2.配置vs
我们正常调试的时候,是无法进入cpp文件而是进入到hpp文件,这是因为opencv的设计者在一开始就把文件封装好了,导致我们无法查看
这里就需要用到一个很重要的文件----pdb文件了,这个文件的作用就是告诉我们hpp对应到的cpp文件的位置
很多时候我们会报找不到pdb文件夹但是依然可以运行的情况,这也是我们进入不了源码的原因,所以,我们在配置lib文件夹的时候,一定要有pdb文件(这个文件就是来自于我们上面自己使用cmake编译得到)
下面则是生产的pdb文件
为什么建议使用opencv4以上的版本,因为笔者在用cmake编译网上opencv3.4.2版本库的时候,发现里面的库内容是缺失的,exe文件夹会正常生成一个叫opencv_world342的dll文件,但是cmake版本却不会(这也是为什么我建议3版本使用exe的原因,否则需要自己添加dll文件,否则运行不了),更严重的问题,没有opencv_world342导致的是cmake无法为其生成对应的pdb文件,所以我们无法进入源码查看内容,在opencv4以上的版本,这个文件被移除了,所以也就不会有这个问题
配置1:
坑点:
我们在配置的时候,会经常出现x86和x64冲突的报错
注意看自己编译生成的opencv配置
看自己install文件夹,下面是x86则是配置x86,x64则是x64
上面的的win32对应就是x86,下面则是x64
点击第一个win32.user进行项目配置
配置2:
注意你这里的include文件夹下是一定得有hpp文件的才行,在cmake编译的时候,有几个include名文件夹,其中一些是没有hpp的,这样的文件夹是会爆错的
第二个就是调试进源代码的核心–lib文件夹
这里我们选择的lib文件夹是一定要选择有pdb文件的文件夹,否则无法进入源码。
配置3:
链接器的配置
注意配置的时候,如果是debug版本则选择带d的lib文件,如下图的412d.lib,否则会报错
小技巧:
使用正则+命令行复制文件名
打开powershell,使用以下指令,然后用alt+鼠标选择即可
调试进入源码