Day 1----开始痛苦的摸索opencv之路
首先按照这位前辈的教程安装,但却又出现了和前辈安全不同的各种问题!!
https://blog.csdn.net/CJ_035/article/details/82024178
且路径的左斜杠与右斜杠不要再搞混!!!
多次configure消除掉所有红块
选好VS的对应版本,我选的是X64—
在重新生成解决方案时会发现调试平台上只有x64,正对应了前面cmake在编译时选择的是VS2019x64版本(与电脑机型一致)。
重生成后下载install文件后发现其中没有x64文件夹,但x64文件夹里的文件都有,于是我自己建立个x64文件夹,从opencv的cv14中将bin文件拷贝过来,再将lib和stabicilib文件放进来。
这里第一天一直找不到原因,一直以为是x64整个文件都没有下载下来,后来仔细观察才发现,猜测可能是装的盗版Win10的原因
自定义环境模块的设置要学会–注意环境配置时选x64平台!!!
Day 2.
第二天全部重新删除,重新开始安装------
又遇到了cmake出现warning的问题(某东西将在以后的版本后被舍弃),然后按照网上说的下了个稍低版本的cmake(或者重新下载同伴被cmake应该也行),成功了。
在按照上述教程后,成功安装拓展包,代码颜色也都正常,但在调试时出现“无法打开opencv_core.dll”等dll文件的错误,检查了VS环境的配置,和系统环境变量的配置,都没有问题。后来,将用户环境变量也设置了一下,再把x64同目录下的bin文件(个人猜测)和x64文件中的lib文件也添加到了环境变量中,重启VS,就莫名其妙地成功了!?!
最后总结时经过思考尝试,发现是由于没有x64文件夹,所以里面的bin文件中的文件直接并入了x64文件夹同目录下的bin文件,而我复制的opencv的cv14中的bin文件内容还是有些不一样的。所以在设置拓展包环境变量时不用设置用户变量,只需添加下面x64文件夹同目录下的bin文件和x64文件夹内的lib文件即可
64位系统的dll文件(动态链接文件)都在下面中(以后也可手动将相关dll文件添加进去)
C:\Windows\SysWOW64
总结学习到的知识点—(不包括具体经验,经验在上述内容中)
- dll文件—
DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。
它允许程序共享执行特殊任务所必需的代码和其他资源.比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序 EXE 文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的 EXE 程序时,在每次修改重建时都必须调整编译所有源代码,增加了编译过程的复杂性,也不利于阶段性的单元测试。
Windows 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创建为较小的 DLL 文件,并可对它们单独编译和测试。在运行时,只有当 EXE 程序确实要调用这些 DLL 模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了 EXE 文件的大小和对内存空间的需求,而且使这些 DLL 模块可以同时被多个应用程序使用。Windows 自己就将一些主要的系统功能以 DLL 模块的形式实现。
一般来说,DLL 是一种磁盘文件,以.dll、.DRV、.FON、.SYS 和许多以 .EXE 为扩展名的系统文件都可以是 DLL。它由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,成为调用进程的一部分。如果与其它 DLL 之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上。DLL 模块中包含各种导出函数,用于向外界提供服务。 - cmake软件
教程:https://www.baidu.com/link?url=t-0eA8AGGRWQ_MQpHfqZxBb5459EheTESNPU_rRKy2c8tgY5u47FGWq8eCGg255s&wd=&eqid=88c48bcf000c3998000000035d983c7f
快速入门:https://www.baidu.com/link?url=GnaibdEy23OWWBlRriJYkrQzG0avnOO6kAm5orFmFa9hLdJP7K4aU8dkzbr0uKskMthyjIaUzZZHmSicp8d2cSic5qXQCrN-p_mJo9OZVCu&wd=&eqid=88c48bcf000c3998000000035d983c7f - 自定义环境模块的方法
- 添加依赖项,更改VS路径,debug/release平台