构建VisualStudio2019+OpenCV4.3的C++ windows编译环境

Posted LaoYuanPython

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建VisualStudio2019+OpenCV4.3的C++ windows编译环境相关的知识,希望对你有一定的参考价值。

一、引言

最近在读源代码研究CLAHE的算法,但好久没学习C++了,发现部分代码难以理解,因此最后下决心装一个C++编译器、下载OpenCV源码,这样碰到疑难问题就可以实际测试了。构建过程遇到了些问题,参考了部分博文资料,终于搞定,在此将遇到的问题记录下来。

二、安装VisualStudio2019

1、找到VisualStudio2019的版本下载并启动安装程序
由于微软已经推出了VisualStudio2022,VisualStudio2019已经成为了历史版本,在微软网站中不太好找,请大家参考《怎么找VisualStudio的历史版本?》找到VisualStudio2019的版本下载,启动安装程序,选择使用C++的桌面开发,如图:
2、如果安装程序无法下载安装内容的解决办法
如果安装程序启动后,停留在下面界面没有进展最后报无法连接网络:

这个问题一般情况是所在网络的DNS无法识别微软的网站域名导致的,解决办法就是在使用网络链接的DNS配置上,将DNS改为使用指定的DNS域名服务器地址。首选DNS服务器或备选DNS服务器至少有一个设为114.114.114.114或8.8.8.8即可。如图:

三、OpenCV版本下载

OpenCV的所有开源版本可以在https://sourceforge.net/projects/opencvlibrary/files/中找到,如图:

选择对应的版本后进入对应版本下载页面,如选择4.3版本,进去后如图:
选择上面标记的opencv-4.3.0-vc14_vc15.exe版本下载,这个版本是windows下与VisualStudio2019配套的版本。

下载后直接解压到对应目录即可使用,如老猿将其解压到:E:\\openCV\\opencv4.3。

四、在VisualStudio2019中配置OpenCV4.3库

VisualStudio2019在编译程序时基于对应平台(如X64)有debug和release两种,为了支持利用OpenCV库在应用开发中使用,针对这2种版本必须都要进行相关设置,下面以release版本为例来介绍,老猿的OpenCV版本为4.3,解压后的目录为E:\\openCV\\opencv4.3。

  • 新建一个项目test;
  • 调整项目属性
  1. 选择:项目->属性
    进入项目设置,选择VC++目录,如图:

  2. 设置头文件路径,加入OpenCV头文件目录
    将OpenCV头文件目录 E:\\openCV\\opencv4.3\\opencv\\build\\include 加入到头文件目录中,如图:

    在老猿测试过程中,发现有时还需要将子目录opencv2(如E:\\openCV\\opencv4.3\\opencv\\build\\include\\opencv2)加入到头文件中才能正常编译,有时不需要。

  3. 设置库文件目录,将OpenCV库目录
    将OpenCV库文件目录E:\\openCV\\opencv4.3\\opencv\\build\\x64\\vc15\\lib加入到库文件目录,如图:

  4. 将库文件加入到连接使用文件中
    上步已经将OpenCV库加到库目录中,但连接需要使用哪些库还需要在此设置。OpenCV提供了Debug库和release库,分别对应opencv_worldXXXd.lib和opencv_worldXXX.lib库,其中XXX是OpenCV版本号,如4.30对应就是opencv_world430d.lib和opencv_world430.lib库。
    需要在连接器->输入->附加依赖选项中将这2个库分别文件加入,如图为release版本使用opencv_world430.lib库:


设置DEBUG版本库则如下:

通过以上步骤,就可以构建一个完整的VisualStudio2019+OpenCV4.3的C++ windows debug模式和release模式的编译环境。

五、设置环境变量

以上步骤介绍完了,就可以进行程序编译了,但编译后的程序需要独立运行,当使用动态库时,还必须将OpenCV动态库加到系统的运行环境变量的path变量中。具体可以参考一下《VisualStudio2019编译的OpenCV文件执行时报找不到dll文件错》。

六、小结

本文介绍了怎么在windows 64位环境中构建VisualStudio2019+OpenCV4.3的C++ windows编译环境,需要使得VisualStudio2019支持OpenCV4.3的应用编译,需要将VC的头文件和库文件目录中加入OpenCV相关目录,并将OpenCV库文件连接到VC的工程中。最后,为了程序正常运行,需要设置正确的环境变量指向OpenCV的动态文件目录。

参考资料

  1. opencv4.3.0+Visual Studio 2019环境配置》;
  2. 怎么找VisualStudio的历史版本?》;
  3. VisualStudio2019编译的OpenCV文件执行时报找不到dll文件错

更多图像处理的内容请参考专栏《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》、《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》及《图像处理基础知识》的介绍。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,也可以扫描博客首页左边的二维码关注公众号。

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython

以上是关于构建VisualStudio2019+OpenCV4.3的C++ windows编译环境的主要内容,如果未能解决你的问题,请参考以下文章

使用 CMake 构建 OpenCV 问题

LINK1104 的 Opencv 构建错误

VisualStudio opencv配置

OpenCV(C++)图像处理基础开篇00

opencv/visual studio:错误 LNK2019:未解析的外部符号

opencv中vc14和vc15的区别?