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. 在Git远程管理项目

    新建repository 本地目录下,在命令行里新建一个代码仓库(repository) 里面只有一个README.md 命令如下: touch README.md        git init 初 ...

  2. 关于setdefault和defaultdict

    c参考链接:http://blog.csdn.net/real_ray/article/details/17919289 defaultdict就是为没有的键给一个默认的值,实际是实现了一个__mis ...

  3. TXT

    ANDRIOD: 192.168.199.119 data50803360 zc_3floor kk4836kk kahuna  kk1626kk

  4. Linux Skills

    ++实现RedHat非正常关机的自动磁盘修复先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下:AUTOFSCK_DEF_CHECK=yesPROMPT=yes ...

  5. Apache CXF使用Jetty发布WebService

    一.概述 Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构.它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于Spring的轻量级容器中,也可以部署在更高级的 ...

  6. 【转】JMeter工作基本原理

    JMeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,这样就很容易地生成性能测试脚本, 有了性能测试脚本,JMeter就可以通过线程组来模拟真实用户对Web ...

  7. java代码反转toCharAT()的用法

    总结:反转注意for循环里面的变化 package clientFrame; //字符串反转 public class we { public static void main(String[] ar ...

  8. JVM之运行时数据区

    Java虚拟机运行时数据区包括PC寄存器.Java虚拟机栈.Java堆.方法区.本地方法栈.运行时常量池六个部分. 1. PC寄存器 PC寄存器(又叫程序计数器,Program Counter Reg ...

  9. mysql 常见参数

    my.cnf[client] 对mysql的所有客端都生效的[mysql] 只对mysql这个命令有效了[mysqd][mysqld_multi] 多实例启动[mysqld_safe][mysqldN ...

  10. win10下默认使用福昕打开PDF

    win10为了推他的edge浏览器, 将默认的pdf打开设置为了edge浏览器, 非常令人反感, 做浏览器就好好做浏览器, 为什么要默认打开pdf? 而且修改默认为福昕后, 下次打开pdf文件, 他又 ...