1、下载安装CMake

要在Windows平台下生成opencv的解决方案,需要一个名为CMake的开源软件。CMake的全称是crossplatform make。它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能输出各种makefile或者project文件。CMake的组态档取名为CmakeLists.txt。CMake并不直接构建出 最终的软件,而是产生标准的构建档,如Linux下的Makefile,windows下Visual C++de projects/workspace。然后再依一般的构建方式使用。

CMake在官网:http://www.cmake.org/上下载。

进入下载页面->Source distributions,可以下载到CMake的源码。在Binary distributions处可以下载到CMake的执行文件,选择对应系统,我的是Windows7 64bit

下载完成之后,直接安装,我的安装目录如下

2、使用CMake生成OpenCV源代码工程的解决方案

第一步:运行cmake-gui,如果没有生成桌面快捷方式,在安装路劲下D:\CMake_OpenCV\CMake_OpenCV_Install\bin处找到cmake-gui.exe运行

第二步:指定opencv的安装路径D:\opencv_2.4.11\sources,可以发现,在此路径下必须会有一个名为CMakeLists.txt的文件,这就是给CMake留下的配置文件。

CMake可以根据这个配置文件,通过选择不同的编译器,来生成不同的解决方案----VisualStudio的编译器对应的就是生成Visual Studio版的sln解决方案。

第三步:指定解决方案的存放路径:D:\CMake_OpenCV\CMake_OpenCV_Solve

第四步:第一次configure,路径设置好之后,单击configure按钮,进行第一次配置过程,然后会弹出如下图所示的进行编译器选择的对话框。

先选定“use default native compilers”,然后可以发现下拉列表中提供了几十种编译器供选择。因为我安装了visual studio,这里会默认选择对应版本的visual studio编译器。

我的visual studio是vs13,windows64bit,不知道是否是错的!!!???

确认无误之后,单击“finish”按钮。于是,CMake 开始第一次源代码配置过程,配置过程直到configuring done,那么第一次的源码配置就完成了。

第五步:第二次configure

再次单击configure按钮。

第六步:单击generate,成功生成项目

只需要单击generate来生成最终额解决方案了,完成之后可以去之前设定的路径下寻找解决方案了。

3、编译opencv源代码

打开刚刚生成的opencv.sln解决方案,可以看到一个庞大的工程----这是一个包含了67个项目的解决方案(对2.4.9而言),如下所示

这时在解决方案资源管理器界面,可以随意点击一个感兴趣的项目,比如opencv_core,再查看src/matrix.cpp文件的源代码,以后大家都会很熟悉的这个Mat类型。

当代码看完之后,我们可以按F5或者其他操作来启动调试,

若编译完成之后出现了类似

这样的警告,这是正常的,因为opencv的源代码工程默认将“ALL_BUILD”这个项目设为了启动项,编译成功后,会默认运行它。

而“ALL_BUILD”是一个项目生成周边的杂项,不是exe执行文件,本身不可以运行,故自然会弹出这样的错误提示。

2.2开源的魅力:编译opencv源代码的更多相关文章

  1. opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块

    一.下载安装cmake 想要在Windows平台下生成OpenCV的解决方案,我们需要一个名为cmake的开源软件,可以在camke的官网:http://www.cmake.org/上下载到 或者点击 ...

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

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

  3. 【OpenCV入门教程之二】OPENCV3 开源之美 — 编译源代码、配置opencv_contrib

    为什么要配置opencv_contrib? opencv3.0版本 功能更加模块块,一些功能模块不够完善,等足够完善在merge到主分支中,而我们图像识别中要用到的SIFT等算法被封装在xfeactu ...

  4. 学习 opencv---(6)玩转opencv源代码:生成opencv 工程解决方案与opencv 源码编译

    在这篇中,我们探讨如何通过已安装的opencv选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码.我们可以对其源代码进行再 ...

  5. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之编译compiz源代码

    在開始介绍之前先吐个嘈:上周我们暑期ACM集训開始了.平均下来基本上是一天一赛.有时还不止.又是多校联赛,又是CodeForces,又是TopCoder.又是BestCoder,又是AcDream.还 ...

  6. vs2019编译opencv

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

  7. 编译OpenCV文档

    概述 使用OpenCV的过程中经常查看文档,每次都去官网查看,不过国内访问速度很慢,有一份本地的文档就好了.本文列出了在Linux(Fedora)系统上从OpenCV源码编译出documentatio ...

  8. win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

    win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...

  9. Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager

    http://johnhany.net/2016/07/build-opencv-manager-for-android-on-ubuntu/ 最近想在Android上尝试一下SIFT和SURF匹配算 ...

随机推荐

  1. 【sqlite】错误代码整理

    这两天为了一个问题折腾了好久,记载一下. SQLite语句一定要严格按例子来写,例如: "CREATE TABLE PunchData (Id Text primary key, Heigh ...

  2. 【java规则引擎】java规则引擎搭建开发环境

    Drools官网:http://www.jboss.org/drools Drools and jBPM consist out of several projects:(Drools软件包提供的几个 ...

  3. 基于jwt和角色的访问控制解决方案

    0,主要解决两个问题:1身份验证(防止httpclient拼接请求),2权限控制 1,身份验证使用jwt,在java就是jjwt jwt可以比较好的整合restful,对无状态客户端比较友好,(用se ...

  4. ALUA and SRM

    A couple important (ALUA and SRM) notes There’s some internal dialog today on our “VMware Champions” ...

  5. 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能

    你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块.具体步骤如下:        1.查看原来的 ...

  6. mybatis generator 用法

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. win10系统怎么关闭自动更新

    现在win10已经很普遍了,对于win10 现在还不是很完美,比如自动更新功能,现在的选项中没有关闭自动更新的选项了,这是一个bug,微软要强制更新.我就忍受不了自动更新,会拉取网络,影响我们的上网体 ...

  8. spring-cloud配置高可用eureka服务端

    spring-cloud配置eureka服务端 eureka用来发现其他程序 依赖 <?xml version="1.0" encoding="UTF-8" ...

  9. Java面向对象-方法的定义及简单使用

    Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: package com.java1234.chap03.sec03; public class Person { void ...

  10. C语言运算符优先级和口诀 (转)

    一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   ...