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. WCF+上传+大文件处理

    大文件处理的方式拆分读取,此文只为记录文件处理方式,供日后查阅. 源码来自http://blog.csdn.net/lywust/article/details/7009248 经过改编将源码改编为文 ...

  2. 自动工作负载库理论与操作(Automatic Workload Repository,AWR)

    AWR的由来:    10g之前的oracle:用户的连接将产生会话,当前会话记录保存在v$session中:处于等待状态的会话会被复制一份放在v$session_wait中.当该连接 断开后,其原来 ...

  3. dpkg安装工具

    dpkg --info "软件包名" --列出软件包解包后的包名称. dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa) ...

  4. VS下QT的自定义槽函数修改方法

    通过几天的摸索,基本发现了两个VS的槽函数的修改方法 一种是UI是通过UI 设计师拖出来的,类似VB的方法,通过拖的方法,按钮的代码是系统自动生成的,在UI.h的头文件下,这个时候,实现槽函数有个固定 ...

  5. Python学习之变量的作用域

    学习地址:http://www.jianshu.com/p/17a9d8584530 1.变量作用域LEGB 1.1变量的作用域 在Python程序中创建.改变.查找变量名时,都是在一个保存变量名的空 ...

  6. flask之redis

    redis 连接需要host port passwod Hash:key-fields-value(做缓存)相当于一个key对于一个map,map中还有key-valueList:有顺序可重复(处理不 ...

  7. shell中字体变色

    在linux中给字体使用数字代码变色 字体颜色代码:重置0 ,黑色30,红色31,绿色32,黄色33,蓝色34,洋红35,青色36,浅灰37 效果代码:1m加粗  2m加下划线  5m闪动效果  7m ...

  8. Java课程设计——坦克大战

    坦克大战——坦克类 一. 团队课程设计博客链接 https://www.cnblogs.com/chenhuilin/p/10275664.html 二.个人负责模块和任务说明 模块:坦克类(玩家坦克 ...

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

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

  10. java.输入水果的编号,求它对应的单价

    总结:可以if-else 循环或switch循环 package com.b; import java.util.Scanner; /*以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4. ...