简述

很久没有用过OpenCV了,这次需要做一点图像处理相关的工作,又需要用起来,这里记录一下编译的过程。之前介绍过使用vs2015编译opencv2.4的帖子在这里

编译好的文件在这里https://pan.baidu.com/s/1qXCWxkw

1、下载源码

这里就不下载源码压缩包了,直接从github上克隆一下。

  1. # 因为访问github较慢,这里直接使用的国内码云同步仓库
  2. git clone https://gitee.com/mirrors/opencv.git
  3. # github上的地址为:https://github.com/opencv/opencv.git

克隆之后可以将3.4.0-rc分支打包出来,你也可以直接切换到3.4.0-rc分支或者直接使用master的代码。

  1. cd opencv
  2. git archive -o ../opencv3.4.0.zip 3.4.0-rc

打包出来的压缩包是不含git仓库的相关文件的,不是很大,可以解压到你想解压的目录。

2、使用cmake生成VS工程

我这里就没有使用命令行,直接使用的cmake-gui进行的配置。

选择源码目录和构建目录之后,点击configure按钮,然后选择编译器为visual studio 2015 2017 win64,等待配置结束。(配置的过程中会去下载opencv_ffmpeg.dll等文件,过程可能比较慢)

我使用的构建选项改变如下(Tools-->My Changes)

  1. Commandline options:
  2. -DBUILD_JAVA:BOOL="0" -DENABLE_LTO:BOOL="1" -DWITH_GSTREAMER:BOOL="0" -DCPACK_BINARY_ZIP:BOOL="1" -DBUILD_TESTS:BOOL="0" -DENABLE_CXX11:BOOL="1" -DBUILD_PERF_TESTS:BOOL="0" -DCPACK_SOURCE_7Z:BOOL="0" -DCPACK_BINARY_NSIS:BOOL="0"
  3. Cache file:
  4. BUILD_JAVA:BOOL=0
  5. ENABLE_LTO:BOOL=1
  6. WITH_GSTREAMER:BOOL=0
  7. CPACK_BINARY_ZIP:BOOL=1
  8. BUILD_TESTS:BOOL=0
  9. ENABLE_CXX11:BOOL=1
  10. BUILD_PERF_TESTS:BOOL=0
  11. CPACK_SOURCE_7Z:BOOL=0
  12. CPACK_BINARY_NSIS:BOOL=0

配置输出信息如下

  1. General configuration for OpenCV 3.4.0-rc =====================================
  2. Version control: unknown
  3. Platform:
  4. Timestamp: 2017-12-20T08:35:12Z
  5. Host: Windows 10.0.14393 AMD64
  6. CMake: 3.7.2
  7. CMake generator: Visual Studio 15 2017 Win64
  8. CMake build tool: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe
  9. MSVC: 1912
  10. CPU/HW features:
  11. Baseline: SSE SSE2 SSE3
  12. requested: SSE3
  13. Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2
  14. requested: SSE4_1 SSE4_2 AVX FP16 AVX2
  15. SSE4_1 (3 files): + SSSE3 SSE4_1
  16. SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2
  17. FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
  18. AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
  19. AVX2 (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
  20. C/C++:
  21. Built as dynamic libs?: YES
  22. C++11: YES
  23. C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x64/cl.exe (ver 19.12.25831.0)
  24. C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /EHa /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /GL /Oi /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP4 /MD /O2 /Ob2 /DNDEBUG /Zi
  25. C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /EHa /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /GL /Oi /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP4 /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
  26. C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x64/cl.exe
  27. C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /GL /Oi /MP4 /MD /O2 /Ob2 /DNDEBUG /Zi
  28. C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /GL /Oi /MP4 /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
  29. Linker flags (Release): /machine:x64 /LTCG /INCREMENTAL:NO /debug
  30. Linker flags (Debug): /machine:x64 /LTCG /debug /INCREMENTAL
  31. ccache: NO
  32. Precompiled headers: YES
  33. Extra dependencies:
  34. 3rdparty dependencies:
  35. OpenCV modules:
  36. To be built: calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo python_bindings_generator shape stitching superres ts video videoio videostab
  37. Disabled: js world
  38. Disabled by dependency: -
  39. Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz
  40. Applications: apps
  41. Documentation: YES (C:/Program Files/doxygen/bin/doxygen.exe 1.8.10)
  42. Non-free algorithms: NO
  43. Windows RT support: NO
  44. GUI:
  45. Win32 UI: YES
  46. VTK support: NO
  47. Media I/O:
  48. ZLib: build (ver 1.2.11)
  49. JPEG: build (ver 90)
  50. WEBP: build (ver encoder: 0x020e)
  51. PNG: build (ver 1.6.34)
  52. TIFF: build (ver 42 - 4.0.9)
  53. JPEG 2000: build (ver 1.900.1)
  54. OpenEXR: build (ver 1.7.1)
  55. Video I/O:
  56. Video for Windows: YES
  57. DC1394: NO
  58. FFMPEG: YES (prebuilt binaries)
  59. avcodec: YES (ver 57.89.100)
  60. avformat: YES (ver 57.71.100)
  61. avutil: YES (ver 55.58.100)
  62. swscale: YES (ver 4.6.100)
  63. avresample: YES (ver 3.5.0)
  64. DirectShow: YES
  65. Parallel framework: Concurrency
  66. Trace: YES (with Intel ITT)
  67. Other third-party libraries:
  68. Intel IPP: 2017.0.3 [2017.0.3]
  69. at: C:/OpenCV/opencv3.4.0/build/3rdparty/ippicv/ippicv_win
  70. Intel IPP IW: sources (2017.0.3)
  71. at: C:/OpenCV/opencv3.4.0/build/3rdparty/ippicv/ippiw_win
  72. Lapack: NO
  73. Eigen: NO
  74. Custom HAL: NO
  75. NVIDIA CUDA: NO
  76. OpenCL: YES (no extra features)
  77. Include path: C:/OpenCV/opencv3.4.0/3rdparty/include/opencl/1.2
  78. Link libraries: Dynamic load
  79. Python (for build): C:/Program Files/Python36/python.exe
  80. Matlab: NO
  81. Install to: C:/OpenCV/opencv3.4.0/build/install
  82. -----------------------------------------------------------------
  83. Configuring done

配置完成后点击Generate按钮创建VS解决方案即可。

3、编译

你可以直接进入cmake的构建输出目录,双击OpenCV.sln使用VS2017打开,然后构建。

也可以使用命令行进行编译

  1. # Release版构建命令如下
  2. C:\OpenCV\opencv3.4.0\build>msbuild /p:configuration=Release /maxcpucount:4 OpenCV.sln
  3. # Debug版本只需要将上面的Release改为Debug即可
  4. # 构建完成后,使用下面命令进行安装(安装输出到build下的install目录,实际上面构建完成就已经安装)
  5. C:\OpenCV\opencv3.4.0\build>msbuild /p:configuration=Release /maxcpucount:4 INSTALL

编译完成安装后,即可到build/install目录下查看相关的头文件和库文件。

4、遇到的错误和解决办法

1、perl --version错误

  1. C:\OpenCV\opencv3.4.0\build\OpenCV.sln”(默认目标) (1) ->
  2. C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj.metaproj”(默认目标) (50) ->
  3. C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj”(默认目标) (52) ->
  4. (CustomBuild 目标) ->
  5. CUSTOMBUILD : error : Problems running bibtex. Verify that the command 'perl --version' works from the command
  6. line. Exit code: 1 [C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj]
  7. 46 个警告
  8. 1 个错误

这个错误与docgen_cpp.vcxproj这个工程相关,那么是生成文档相关的,这里就不该了,直接去掉doxygen文档生成选项。

在命令行参数中添加-DBUILD_DOCS:BOOL="0"或者在cmake-gui中将BUILD_DOC选中的勾去掉。

然后重新ConfigureGenerate一下。然后重新编译即可。

Windows下VS2017编译OpenCV 3.4.0-rc的更多相关文章

  1. Windows 10 +VS2019 编译OpenCV 4.1.0

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

  2. Windows下CMake编译安装OpenCV

    Windows下CMake编译安装OpenCV 这是一个面向新手的在windows上运进opencv, helloword的教程. 在这里我们使用vs2019来编译opencv, 并运行一个hello ...

  3. 原创 C++应用程序在Windows下的编译、链接:第一部分 概述

    本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 cl.exe是windows平台下的编译器,link.ex ...

  4. 【FFmpeg】Windows下FFmpeg编译

    由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类 ...

  5. C++应用程序在Windows下的编译、链接(一)概述

    C++应用程序在Windows下的编译.链接(一)概述 本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 c ...

  6. ACE在windows下的编译及配置(VS2010)

    ACE在windows下的编译及配置(VS2010) 分类:             -[小西南]-              2013-08-06 16:17     2354人阅读     评论( ...

  7. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

  8. windows下rabbitmq-c编译(带openssl、无需MinGW)

    因为项目原因,需要使用到rabbitmq的c客户端库.首先,参见上一篇windows下openssl编译,如果已经使用cmake编译过了,则先delete cache(File-Delete Cach ...

  9. Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)

    后记: 由于自己low,没有下载罪行的python3.2导致编译上遇到种种问题,后文可以参考,建议看: <Windows7 VS2015 下编译 PythonQt3.2> https:// ...

随机推荐

  1. Ember.js 1.0 RC6 发布,JavaScript 框架

    Ember.js 1.0 发布了第 6 个 RC 版本,下载地址:https://github.com/emberjs/ember.js/tree/v1.0.0-rc.6 该版本包含众多的改进记录,详 ...

  2. Asp.Net MVC3 简单教程(三)详解Controller之Filter 【转】

    前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...

  3. 解决Keyboard遮盖输入的几种办法

    一般来说,键盘遮挡主要有这么几种情况,一个是遮住UITextView,还有就是遮住UITextField,一般来说,比较推荐在UIScrollView或者UITableView里加入textfield ...

  4. JQuery之ContextMenu(右键菜单)

    插件下载地址:http://www.trendskitchens.co.nz/jquery/contextmenu/jquery.contextmenu.r2.js压缩版:http://www.tre ...

  5. 大数据开发实战:离线大数据处理的主要技术--Hive,概念,SQL,Hive数据库

    1.Hive出现背景 Hive是Facebook开发并贡献给Hadoop开源社区的.它是建立在Hadoop体系架构上的一层SQL抽象,使得数据相关人员使用他们最为熟悉的SQL语言就可以进行海量数据的处 ...

  6. Centos安装FTP服务器和配置

    安装 yum install vsftpd 启动/重启/关闭 /sbin/service vsftpd start /sbin/service vsftpd restart /sbin/service ...

  7. 一文读懂「Attention is All You Need」| 附代码实现

    https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247486960&idx=1&sn=1b4b9d7ec7a9f4 ...

  8. 转:git设置过滤忽略的文件或文件夹

    from: https://www.cnblogs.com/foohack/p/4629255.html git设置过滤忽略的文件或文件夹   我们一般向代码仓库提交项目的时候,一般需要忽略编译生成的 ...

  9. SSAS知识回放之订单数据分析

    1:目标 基于已经做好的DW,利用SSAS实现一个多维数据模型的创建,通过浏览可以简单的实现订单数据的分析 2:步骤 2.1:添加数据源 如下图所示,创建一个数据仓库层的数据源连接 2.2:添加数据源 ...

  10. python 读取单所有json数据写入mongodb(单个)

    <--------------主函数-------------------> from pymongo import MongoClientfrom bson.objectid impor ...