最近用到opencv人脸识别的代码,想进源码看看实现过程,大家都知道opencv的源码在opencv/modules下,但是光看那么长的源代码实在麻烦,要是能在调试的时候按f11直接就能跟进内部代码就好了。说到这里大家会想为什么进不了呢?这是因为我们的程序调用opencv的函数使用的是opencv/build/x86/bin下的动态链接库,这是opencv为所有windows用户提供的,想要跟进代码就必须在本地编译生成链接库等必须文件。

本文参考了文章Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41重编译OpenCV这里讲的详细但还是有点错误,这里我来总结一下,避免大家走弯路。

1、工具

下载并安装这几个工具:CMake、OpenCV、Visualstudio

下载OpenCV:http://opencv.org/downloads.html

下载CMake:http://www.cmake.org/cmake/resources/software.html,安装

2、用CMake生成OpenCV的VS2012解决方案

首先按照下图标注,①是opencv所在目录②是接下来的工程目录(自己新建),接下来点configure按钮直到不出现红色,然后点Generate 生成工程文件,成功的话会在C:/svn/opencvproject下生成工程文件。

3、打开opencv工程并编译源代码,生成我们所需要的动态链接库

在C:/svn/opencvproject找到Opencv.Sln,打开如下图

这里首先点开Debug处的小三角选择配置管理器,如果INSTALL未选择则选中,然后确定;右键ALL_BUILD生成debug版的工程文件,10分钟左右,完成后切换到Realease右键ALL_BUILD生成。

4、配置Opencv环境变量

注意,这里也是跟上述文章不一样的地方,估计是因为OpenCV版本不同吧,导致配置上有所不同,

环境变量path应该添加以下两个路径:
C:\svn\opencvproj\bin\Debug 和  C:\svn\opencvproj\bin\Release

注:C:\svn\opencvproj\ 是我用CMake生成的VS2012工程的所在目录。

注意:之前用的是OpenCV自带编译版本的请注意了,应该将原来环境变量删除后再添加。否则调试的时候还是多多少少有些问题

5、修改工程属性

右键你的项目,选择属性,点中VC++目录,修改包含目录和库目录
1.包含目录设置为:C:\svn\opencvproj\install\include ; C:\svn\opencvproj\install\include\opencv ; C:\svn\opencvproj\install\include\opencv2(这解释了刚才为什么要勾选INSTALL了,否则是找不到install这个目录的,如果还是没有就展开工程CMakeTargets右键INSTALL分别在Debug和Realease下生成)
2.库目录设置为:C:\svn\opencvproj\lib\Debug
3.添加附加依赖项,在 链接器->输入->附加依赖项处添加:
opencv_calib3d246d.lib
opencv_contrib246d.lib
opencv_core246d.lib
opencv_features2d246d.lib
opencv_flann246d.lib
opencv_gpu246d.lib
opencv_highgui246d.lib
opencv_imgproc246d.lib
opencv_legacy246d.lib
opencv_ml246d.lib
opencv_nonfree246d.lib
opencv_objdetect246d.lib
opencv_photo246d.lib
opencv_stitching246d.lib
opencv_video246d.lib
opencv_superres246d.lib
opencv_ts246d.lib
opencv_videostab246d.lib
这里根据自身情况来定,不同版本不同项目所需的lib文件可能不一样
这里的246d代表opencv版本是2.4.6,d代表debug版,release是不加d的,注意区分!
到这里,我们的所有配置已经完成,主要上文区别的地方在环境变量path不同,包含的库目录不同。

6.测试项目

到项目中设置断点,按f11看能否跳进opencv代码内部

opencv在vs2012下重编译详细教程——解决按f11进入不了源代码相关推荐

  1. opencv、opencv_contrib及cuda联合编译详细教程

    opencv.opencv_contrib及cuda联合编译详细教程 最近在使用opencv时需要用cuda加速,网上了很多帖子,踩了很多雷,摸索出来了一点规律,分享给大家,一起探讨(我也是刚刚入手, ...

  2. linux内核编译最详细,Linux内核编译详细教程,linux内核编译

    Linux内核编译详细教程,linux内核编译 尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统. kernel-4.14.14 内核文件约96MB,解压 ...

  3. Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)

    Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 文章目录 Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1.上传或者下载mysql安装包 2.检查是否 ...

  4. OpenCV在Linux下的编译安装(Ubuntu )

    OpenCV在Linux下的编译安装(Ubuntu ) 1.先安装相关的库: sudo apt-get install build-essential sudo apt-get install lib ...

  5. linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...

  6. 微信小程序如何进行反编译详细教程

    前言介绍 小程序反编译,其实还是简单的,要想拿到微信小程序源码,先要拿到小程序的包,用反编译脚本跑一下,微信小程序代码包里的所有文件.所有资源就出来了(除了project.config.json小程序 ...

  7. 最新小程序反编译详细教程,亲测可用

    小程序因为触手可及.自带推广等的特点,自诞生以来,实现了很多的商业场景,同时取代了App的大部分市场份额.其实小程序的开发和网页开发类似,同样使用的是JavaScript开发的,属于前端,所以借助一些 ...

  8. Linux下安装MySql详细教程

    前言 本文对linux环境下安装Mysql过程进行一个详细记录 一.安装包和环境准备 1.所需安装包 将mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz安装包上传至 ...

  9. DevExpress 11.1.6 重编译详细过程

    编译需要准备的内容如下: 1.DevExpress 11.1.6 官方安装包 2.DevExpress 11.1.6 源代码 3.DevExpress 11.1 编译脚本 4.安装 NNuit 安装包 ...

最新文章

  1. vue 自定义select下拉框样式(div模拟)
  2. 2.3.NLTK工具包安装、分词、Text对象、停用词、过滤掉停用词、词性标注、分块、命名实体识别、数据清洗实例、参考文章
  3. 《炉石传说》架构设计赏析(1):游戏启动流程
  4. linux weblogic10 安装,linux 静默安装weblogic10.36
  5. ActiveReports 报表应用教程 (15)---报表换肤
  6. 学习Java笔记2018.3.31
  7. CompletableFuture 详解
  8. 曾遭周鸿祎全网封杀的 360 猛将 :草根打工到 36 岁身家上亿的逆袭!
  9. 卡巴斯基PURE3.0激活码授权文件KEY
  10. 华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力)
  11. WIN10系统微软拼音输入法无法输入中文
  12. 同义词相似度可以怎样计算
  13. linux命令怎么查看日志文件,linux查看日志文件命令
  14. 1+X web证书(高级)的重要知识点的复习
  15. NOTION 换深色背景 黑色背景
  16. 那些我们想当然的错误[SQL]
  17. 创业冲突的五种解决方法是_避免创业合伙人之间发生冲突的四种方法
  18. R语言 表达式对象的求值 eval
  19. 微信之分享到朋友圈并记录分享次数
  20. mac下Intelij IDEA中修改maven国内镜像

热门文章

  1. 运行时错误7内存溢出_C++程序运行时的内存模型
  2. Java LocalDate类| minusWeeks()方法与示例
  3. 量子物理 詹班 计算机,(电气系计算机系詹班)量子物理作业答案
  4. android 图片叠加xml,Android实现图片叠加效果的两种方法
  5. enter sleep mode黑屏怎么解决_【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案...
  6. python动态方法_python中的动态方法生成
  7. java如何实现乌龟爬行_请教:一只乌龟的运动
  8. 账单cbl_CBL的完整形式是什么?
  9. java sublist_Java Vector subList()方法与示例
  10. scala集合中添加元素_如何在Scala中将元素添加到列表中?