由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于成功。本文记录一下安装的过程以及遇到的问题,仅供参考。开篇吐槽一下博客园的博文【自动保存和恢复】功能,说白了就是可以自动保存,但是几乎不能自动恢复,不要问我为什么这么说,呵呵。

本PC环境的详细配置:Windows 10 16299.192 64-bit,Visual Studio Enterprise 2017 15.5.2,OpenCV-3.4.0-vc14_vc15,CMake 3.10.1,CUDA 9.0

开始正式介绍安装步骤:

(1)下载并安装Visual Studio 2017。由于本PC上安装的是最新的Visual Studio 2017企业版,因此本人主要研究如何在最新版的VS上编译并部署opencv开发环境。如果各位搞不到Visual Studio 2017企业版的激活码,那么使用社区版也是没有问题的。首先到官方网站下载Visual Studio 2017并安装。在Visual Studio Installer中,勾选和C++开发相关的所有组建,并且确保安装过程顺利无误,这一点非常重要,因为必须确保VC++编译环境正确安装。这里提醒一下,注意VS2017的版本号为15,因此对应的VC++编译环境的版本号为vc15,这个很重要,将决定opencv版本的安装。

(2)下载并安装OpenCV。从官网下载OpenCV,本人使用的是最新版OpenCV-3.4.0-vc14_vc15,请注意,这里要下载支持vc15的版本,才能很好的兼容Visual Studio 2017,本人曾看一些博客写到用vc14(对应Visual Studio 2015)的版本在Visual Studio 2017中使用,亲测,毛病有不少。安装过程没什么太多好说,比较简单。为了求稳,安装目录设为C:/OpenCV,目录中全英文且不包含任何空格符。PS:这个版本是在12月23日发布的,圣诞礼物哟。

(3)下载并安装CMake。从CMake官网上下载最新版的CMake。因为本人使用的环境是比较新的,因此需要使用新的CMake来保证兼容性。

(4)使用CMake创建OpenCV.sln。为了实现OpenCV的本地编译,首先要使用CMake创建OpenCV.sln,然后再使用VS2017进行编译,生成库文件。首先启动CMake,选择OpenCV的源代码目录和build目录,然后点击【Configure】,CMake开始执行配置,开始前,要选择正确的编译器,本PC上安装的是Visual Studio 2017 15.5.2,因此选择Visual Studio 15 2017 Win64.此时点击【Finish】,配置过程开始。只要OpenCV和CMake下载安装不出问题,一般来说这个过程是不会报错的,如果出错导致配置失败,则需要查阅日志文件,解决问题。这里说明一点,在Configure过程中,需要联网自动下载三个文件,可能会由于网络的问题导致下载不下来,如果由于该问题导致配置失败,可以通过重新配置的方法解决该问题,实在不行,可以去网上找这三个文件,手动下载。

  

在配置过程结束后,如果成功,则会在日志框里显示【Configuring done】,中间的配置框会变红,显示配置项。在这里,要手动勾选两项【BUILD_EXAMPLES】和【BUILD_opencv_world】,然后再点击【Configure】,再次执行配置。不出意外的话,这个过程会很快完成,配置框变为白色。该步骤完成。本人在这里遇到了一个巨大的坑:本人的PC上安装了CUDA 9.0,不知道是没安装好还是兼容性问题,在成功生成OpenCV工程文件后,使用VS2017编译源代码,总是失败,折腾了两天时间。经过查阅编译日志(这里忘了截图),发现是CUDA编译器的问题,经过摸索,发现将BUILD_CUDA相关的项目勾选去掉,然后重新生成sln,解决了问题。后来我重装了系统,没有安装CUDA,则正常安装即可,可忽略这个步骤。

(5)生成OpenCV.sln。配置完成后,点击【Generate】,生成VS工程文件。这个过程一般不需要太多时间,只要之前的过程没出错,这里一般不会有问题。

(6)使用VS2017编译OpenCV源代码。点击【Open Project】按钮,CMake会启动VS2017并加载OpenCV.sln。加载过程可能要一点时间(相对于一般小规模项目而言),需要耐心等待。加载完成后,点击【生成】,选择【批生成】,然后只勾选INSTALL那两项,其他项目不勾选,然后开始生成。这个过程比较久,需要耐心等待,本PC上跑了50分钟。

  

Build成功后,在C:\OpenCV\build\install\x64\vc15\bin目录下会生成相应的动态库。如果有失败的,要查阅输出日志,具体问题具体解决。到此,本地编译OpenCV的工作就全部做完了。

(7)配置OpenCV环境变量。右击【此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 编辑Path -> 新建】,添加环境变量C:\OpenCV\build\install\x64\vc15\bin。这个步骤不难,网上有很多教程。

(8)新建工程并测试。在VS2017中新建一个空的C++项目。在【属性管理器】中选中【Debug | x64->Microsoft.Cpp.x64.user】并右击弹出菜单,选择【属性】。

   

选择【C/C++ -> 常规 -> 附加包含目录】,添加如下三个目录:

再选择【链接器 -> 附加库目录】,添加如下目录:

再选择【链接器 -> 输入 -> 附加依赖项】,添加如下库文件名:

点击【确定】,【应用】。

创建一个cpp文件,并添加如下测试代码:

 1 #include <opencv2\opencv.hpp>2 3 using namespace cv;4 5 int main(int argc, char** argv)6 {7     Mat img = imread("C:\\Users\\lzhuc\\source\\repos\\opencv_test\\x64\\Debug\\lena.jpg"); 8     imshow("img", img);9     waitKey(0);
10     return 0;
11 }

编译,运行,效果如下:

本人测试发现,如果配好了环境直接运行,会报错,发现img为空,是个0x0的矩阵,重启一下系统,就可以了。

Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试相关推荐

  1. visual studio 2017搭建linux c++开发环境

    https://blog.csdn.net/cekonghyj/article/details/77917433 https://blog.csdn.net/norsd/article/details ...

  2. Win10 下Visual Studio 2017源码编译Paddle

    Win10 下Visual Studio 2017源码编译Paddle 1.准备工作 Visual Studio 2017 Python 3.8.10 CMake 3.22.0-rc2 熟悉官方文档: ...

  3. Windows10下利用Visual Studio Code搭建C语言开发环境

    Windows10下利用Visual Studio Code搭建C语言开发环境 1. 前言 2. 下载安装VSCode以及MinGW 2.1 下载安装VSCode 2.2 下载安装MinGW-w64 ...

  4. Visual Studio 2017 ASP.NET Core开发

    Visual Studio 2017 ASP.NET Core开发,Visual Studio 2017 已经内置ASP.NET Core 开发工具. 在选择.NET Core 功能安装以后就可以进行 ...

  5. Linux操作系统Ubuntu 22.04配置Visual Studio Code与C++代码开发环境的方法

      本文介绍在Linux Ubuntu操作系统下,配置Visual Studio Code软件与C++ 代码开发环境的方法.   在文章虚拟机VMware Workstation Pro中配置Linu ...

  6. Visual Studio Code搭建NodeJs的开发环境

    一.Visual Studio Code搭建NodeJs的开发环境 1.下载安装NodeJs并配置环境变量 可以参考:NodeJs的安装和环境变量配置 2.下载安装 VS Code编辑器 可以参考:V ...

  7. 安装OpenCV +VS2010 开发环境配置

    目录(?)[-] 2014年4月28更新OpenCV 249的配置 2014年9月12更新OpenCV 30的配置 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理 ...

  8. vs2017 linux工程设置头文件,使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 VS2017亮点很多,包括模块化安装.启动速度加快(第一次启动加快50%以上).github插件.启动页完善.增强代码提示功能,等等,更多参考:https://w ...

  9. 使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ ...

最新文章

  1. button点击改变颜色_【干货】眉笔颜色要选对,三步教你选择正确眉色
  2. 2017 ZSTU寒假排位赛 #8
  3. python根据年月日计算天数_「每日一练」Python实现输入年月日计算第几天
  4. 通过NHibernate ORM和CodeDom在任何数据库中自动生成表以生成代码
  5. flex自定义更新UI
  6. cisco 基本命令
  7. CURL不能访问 但浏览器可以访问
  8. CentOS7安装vmware tools时出现Searching for a valid kernel header path… The path “” is not valid错误
  9. html embed函数爬取,HTML DOM Embed用法及代码示例
  10. 怎么对视频进行简单补帧
  11. 访问yy直播页面点击播放无响应分析
  12. STM32F103_study50_The punctual atoms(STM32 General timer basic principle )
  13. FTP服务器 虚拟用户 530 Login incorrect. Login failed 解决办法
  14. 服务器租用价格与哪些因素有关?
  15. 利用Python将视频文件转成语音文件
  16. JQ使div动态拉伸,width
  17. 快捷键没有响应的处理办法
  18. linux网络编程:splice函数和tee( )函数高效的零拷贝
  19. 企业在知乎上做问答推广的技巧分析,企业知乎推广营销方法步骤
  20. fatal: remote error: The unauthenticated git protocol on port 9418 is no longer support问题解决

热门文章

  1. 用keil仿真程序,出现 EVALUATION MODE Running with Code Size Limit:2K
  2. altium designer布线调整时不自动删除旧线
  3. Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
  4. POLARDB产品特性和通用业务场景
  5. log4j.properties配置详解与实例
  6. redis报protocol error的真正原凶
  7. oracle性能调优学习0622
  8. 【TUP第11期】腾讯黄朝兴:浅谈客户端架构
  9. 去除掉TabHost下面那个边线的小技巧
  10. AS3 中强制类型转换方法