微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜。芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下使用vs2019编译opencv的步骤。

编译过程

1.安装所需工具

本次编译的环境与工具为:

  • windows10 64位 英文版(理论上win7以上的系统都可以)
  • git(非必须,下载源代码使用)
  • cmake (建议版本在3.15以上,芒果尝试过3.12无法构建vs2019的解决方案)
  • vs2019最新版(2019.06.10)

软件安装过程芒果就不再赘述了,可以自行谷歌或者百度安装。建议在安装git和cmake的时候将软件的环境变量添加到系统设置内(安装向导一般会有一个add ... to Path ...之类的选项,注意查看将选项勾上就ok)。

2.下载源码

源码可以到github的opencv项目上可以直接下载,在github下载好代码压缩包解压就行。这里给出项目地址opencv项目地址。芒果这里直接使用git命令直接clone下来,如果你安装了git,也可以和芒果一样操作下载源码。

首先新建一个OpenCVSourceCode文件夹,使用powershell(git需要添加环境变量)或者git bash打开。

输入命令

 git clone https://github.com/opencv/opencv.git

然后等待下载完成,过程如下所示

PS D:\OpenCVSourceCode> git clone https://github.com/opencv/opencv.git
Cloning into 'opencv'...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 255212 (delta 13), reused 23 (delta 10), pack-reused 255143
Receiving objects: 100% (255212/255212), 458.96 MiB | 6.98 MiB/s, done.
Resolving deltas: 100% (178154/178154), done.
Checking out files: 100% (5851/5851), done.
PS D:\OpenCVSourceCode>

通过这种直接拉取opencv源码仓库的方式下载的是最新的opencv源码,也就是说此刻编译好的opencv将会是比官方发布最新版本还要新的专属最新版opencv。

3. cmake构建vs解决方案

cmake打开源码&设置构建方案路径

如图,首先使用cmake打开下载的opencv源码,接着新建一个存放构建文件的文件夹,使用cmake打开。

配置configure

点击configure,如图选择2019的构建方案。

再次configure

点击配置configure一遍后,会出现红色的提示。是不是报错了呢,非也。不用慌,注意看会发现软件其实有提示的,只不过是英文的而已,按照提示再次点击一遍configure就好了。

再次配置后,红色提示就没了,此时如果注意看提示,正常的话就像途中的configuring done的提示。

生成解决方案

点击generate,正常生成后会有图中的提示。

configuring done
genereating done

4. vs编译解决方案

打开解决方案

在上一步生成解决方案完成后,点击软件的Open Project就可以打开解决方案。注意电脑中如果有多个版本的vs,打开的时候注意选择vs2019打开。也可以到第一步设置构建文件路径哪里找到方案所在位置,一个名为OpenCV.sln的文件。

生成All_BUILD

打开解决方案后,找到All_BUILD项目,鼠标右键生成。等待一会后,即可编译完成。

如图,正常编译完81个项目。

生成INSTALL

右键生成INSTALL项目,完成后提示

到此已经完成了编译过程。编译完成的文件,可以在install文件夹里找到。如图

打开install文件可以看到编译好的opencv.

打开bin文件夹可以看到,动态链接库文件。

lib文件夹为静态链接库文件。

可以注意到的是,这些链接库文件在opencv的版本号之后都带着一个字母d,这是debug的意思。因为咱们之编译了debug的版本,假如需要编译release版本,重新打开OpenCV.sln,修改项目为release再编译即可。

尾巴

按照步骤编译,整个过程应该非常顺利的,其实使用cmake编译第三方库都是一个通用的流程,总结下来就是归为:

  • 1使用cmake打开源码,设置构建的vs解决方案.sln的文件路径
  • 2配置configure构建的参数,一般按默认,直接点击configure就好,注意看提示,尤其是配置一遍还标红色的时候,往往会提示你再configure一遍。
  • 3生成generate解决方案,同样直接点击就好
  • 4打开解决解决方案,使用vs生成所有项目,再生成install项目。

本文由芒果浩明发布,转载需注明来源。

本文链接:https://mangoroom.cn/opencv/vs2019-compile-opencv.html

vs2019编译opencv的更多相关文章

  1. Windows 10 +VS2019 编译OpenCV 4.1.0

    准备环境 安装cmake 官网 获取代码 github 下载拓展库opencv_contrib github 生成Sln cmake安装完后桌面会有一个快捷方式,可打开cmakeGUI,打开它. 第一 ...

  2. cmake编译opencv指南

    目录 cmake编译opencv指南 用包管理器安装 查看opencv相关的包 执行安装 编译安装 为什么编译安装 下载源码 编译脚本 执行编译脚本.解决3rdparty下载 编译后的设定-环境变量 ...

  3. 实用图像处理入门 - 2 - Windows平台下编译openCV

    标签中的部分 font-family: 华文细黑; font-size: 26px; font-weight: bold; color: #611427; margin-top:40px; } h2 ...

  4. 在Windows下用MingW 4.5.2编译OpenCV 2.3.0

    需要的工具:1.安装QT SDK环境2.安装CMake for Windows3.OpenCV最新Windows源码步骤:1.将QT SDK安装目录下的{QtSDK}\mingw\bin添加到系统环境 ...

  5. [置顶] ubuntu12.04下编译opencv程序

    ubuntu12.04下编译opencv程序 1.在ubuntu下安装好 opencv后(建议使用apt-get install 来安装) 2.使用程序FaceExaple.c来进行测试程序 #inc ...

  6. WIN7x64+VS2010+OpenCV2.4.10+cmake3.5.0重新编译OpenCV

    1,参考博文 Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41重编译OpenCV [OpenCV入门教程之七] 玩转OpenCV源代码:生成OpenCV工程解决 ...

  7. 为OPENCV添加freetype支持并显示中文字符(在mac上编译opencv及contrib库)

    在mac电脑上管理这些gnu的库一般都使用Homebrew,但总有一些你个性化的需要是官方的Homebrew配方无法满足的.比如在屏幕的输出中使用中文字符. 在OPENCV中输出UTF8字符集早已经有 ...

  8. linux下编译opencv

    1.安装cmake:sudo apt-get install cmake 2.下载opencv-2.4.10.zip,解压 3.编译opencv cd /home/opencv-2.4.10 mkdi ...

  9. win10 vs2015源码编译opencv、opencv_contrib、Tesseract

    1.软件包准备 opencv源码包地址:                官网  github opencv_contrib源码包地址:   github Tesseract源码包地址:        ...

随机推荐

  1. docker自动启动容器

    Docker提供了重新启动策略 来控制容器在退出时或Docker重新启动时是否自动启动.重新启动策略可确保以正确的顺序启动链接的容器.Docker建议您使用重新启动策略,并避免使用进程管理器来启动容器 ...

  2. 浅淡数据仓库(二)星型模式与OLAP多维数据库

    在关系数据库管理系统中实现的维度模型称为星型模型模式,因为其结构类似星型结构.在多为数据库环境中实现的维度模型通常称为联机分析处理(OLAP)多维数据库

  3. 「CF1105E」Helping Hiasat

    题目链接 戳我 \(Solution\) 将好友访问你的主页的状态用二进制存下来 其中若第\(i\)位是\(1\),则表示这个好友在第\(i\)个\(1\)操作后访问了你的主页,否则没访问. 所以如果 ...

  4. 识别C++编译器编译标准

    cout << __cplusplus<<endl; C++03:__cplusplus = 199711L C++11:__cplusplus = 201103L

  5. python数据可视化示例柱状图

    from matplotlib import pyplot as plt import platform import pandas from pathlib import Path # 根据不同的平 ...

  6. LeetCode 216. 组合总和 III(Combination Sum III)

    题目描述 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. 示例 1: 输入 ...

  7. linu逻辑分区动态调整大小

    注意: 这个动态调整的方法是有丢数据风险的,要确保调整的源分区没有使用或者使用率很低.源分区中如果有重要的文件最好先备份 在centos 6.5上操作过 lvdisplay 查看已有的分区的大小 lv ...

  8. ZT:我们身边大多数的事都是暂时性的

    1. 家庭放在首位. 2. 戒酒能有助于身体健康. 3. 经常跑步以及运动有益于身心健康. 4. 保证心胸开阔.让爱自动来到你的身边,而不需要你自己去拼命寻找. 5. 区分优秀的导师和老师.不断提升自 ...

  9. Vue踩坑系列

    前言 前端开发对于vue的使用已经越来越多,它的优点就不做介绍了, 本篇是我对vue使用过程中遇到的问题中做的一些总结,帮助大家踩坑.如果喜欢的话可以点波赞,或者关注一下,希望本文可以帮到大家!!! ...

  10. 2018年第一记:EDM策略分享-EDM营销的策略分析

    很久没有上博客园来更新下文章了,一则因为工作繁忙,二则对技术方面的研究时间花的少了,目前主要侧重于EDM营销方面的策略制定.很多人跟我说,做EDM营销都茫然无头绪,那么做EDM到底有什么策略呢?下面博 ...