简述

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

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

1、下载源码

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

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

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

cd opencv
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)

Commandline options:
-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" Cache file:
BUILD_JAVA:BOOL=0
ENABLE_LTO:BOOL=1
WITH_GSTREAMER:BOOL=0
CPACK_BINARY_ZIP:BOOL=1
BUILD_TESTS:BOOL=0
ENABLE_CXX11:BOOL=1
BUILD_PERF_TESTS:BOOL=0
CPACK_SOURCE_7Z:BOOL=0
CPACK_BINARY_NSIS:BOOL=0

配置输出信息如下

General configuration for OpenCV 3.4.0-rc =====================================
Version control: unknown Platform:
Timestamp: 2017-12-20T08:35:12Z
Host: Windows 10.0.14393 AMD64
CMake: 3.7.2
CMake generator: Visual Studio 15 2017 Win64
CMake build tool: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe
MSVC: 1912 CPU/HW features:
Baseline: SSE SSE2 SSE3
requested: SSE3
Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2
requested: SSE4_1 SSE4_2 AVX FP16 AVX2
SSE4_1 (3 files): + SSSE3 SSE4_1
SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2
FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
AVX2 (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 C/C++:
Built as dynamic libs?: YES
C++11: YES
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)
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
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
C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x64/cl.exe
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
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
Linker flags (Release): /machine:x64 /LTCG /INCREMENTAL:NO /debug
Linker flags (Debug): /machine:x64 /LTCG /debug /INCREMENTAL
ccache: NO
Precompiled headers: YES
Extra dependencies:
3rdparty dependencies: OpenCV modules:
To be built: calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo python_bindings_generator shape stitching superres ts video videoio videostab
Disabled: js world
Disabled by dependency: -
Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz
Applications: apps
Documentation: YES (C:/Program Files/doxygen/bin/doxygen.exe 1.8.10)
Non-free algorithms: NO Windows RT support: NO GUI:
Win32 UI: YES
VTK support: NO Media I/O:
ZLib: build (ver 1.2.11)
JPEG: build (ver 90)
WEBP: build (ver encoder: 0x020e)
PNG: build (ver 1.6.34)
TIFF: build (ver 42 - 4.0.9)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1) Video I/O:
Video for Windows: YES
DC1394: NO
FFMPEG: YES (prebuilt binaries)
avcodec: YES (ver 57.89.100)
avformat: YES (ver 57.71.100)
avutil: YES (ver 55.58.100)
swscale: YES (ver 4.6.100)
avresample: YES (ver 3.5.0)
DirectShow: YES Parallel framework: Concurrency Trace: YES (with Intel ITT) Other third-party libraries:
Intel IPP: 2017.0.3 [2017.0.3]
at: C:/OpenCV/opencv3.4.0/build/3rdparty/ippicv/ippicv_win
Intel IPP IW: sources (2017.0.3)
at: C:/OpenCV/opencv3.4.0/build/3rdparty/ippicv/ippiw_win
Lapack: NO
Eigen: NO
Custom HAL: NO NVIDIA CUDA: NO OpenCL: YES (no extra features)
Include path: C:/OpenCV/opencv3.4.0/3rdparty/include/opencl/1.2
Link libraries: Dynamic load Python (for build): C:/Program Files/Python36/python.exe Matlab: NO Install to: C:/OpenCV/opencv3.4.0/build/install
----------------------------------------------------------------- Configuring done

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

3、编译

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

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

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

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

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

1、perl --version错误

       “C:\OpenCV\opencv3.4.0\build\OpenCV.sln”(默认目标) (1) ->
“C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj.metaproj”(默认目标) (50) ->
“C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj”(默认目标) (52) ->
(CustomBuild 目标) ->
CUSTOMBUILD : error : Problems running bibtex. Verify that the command 'perl --version' works from the command
line. Exit code: 1 [C:\OpenCV\opencv3.4.0\build\doc\doxygen_cpp.vcxproj] 46 个警告
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. MAPI错误0x80040107

    MAPI错误0x80040107  的解决方案: The MAPI error means there's an "invalid entry" within the contac ...

  2. [转]Linux的SOCKET编程详解

    From : http://blog.csdn.net/hguisu/article/details/7445768 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在 ...

  3. react常用模块介绍

    react各个模块: 1.node.js自带的模块(原生模块):https://www.jianshu.com/p/abc72267abfc原生模块的api文档地址:http://nodejs.cn/ ...

  4. go语言之进阶篇方法的继承

    1.方法的继承 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...

  5. cesium js学习一加载三维模型【转】

    http://blog.csdn.net/tangyajun_168/article/details/50936698 最近项目中用到室外三维模型与室内三维地图交互,室外三维模型的加载我们采用了ces ...

  6. ARDC Android 远程桌面助手 录屏 演示 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. Linq-Contains查询

    customers.Where(c => c.Name.Contains("john"));

  8. RAMPS1.4 3d打印控制板接线与测试2

    http://learn.makerlab.me/guides/1/articles/2 mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega256 ...

  9. 主成分分析(PCA)原理及推导

    原文:http://blog.csdn.net/zhongkejingwang/article/details/42264479 什么是PCA? 在数据挖掘或者图像处理等领域经常会用到主成分分析,这样 ...

  10. Redis实战总结-Redis的高可用性

    在之前的博客<Redis实战总结-配置.持久化.复制>给出了一种Redis主从复制机制,简单地实现了Redis高可用.然后,如果Master服务器宕机,会导致整个Redis瘫痪,这种方式的 ...