闲话

昨天晚上在新电脑上重新配置了OpenCV3.1,之前虽然也弄过,不过当时是初学者,只是照着网上的教程简单的配置了Debug模式下x86的运行环境(大部分的教程也只教了这种方式的配置......)。想着反正闲着没事,我就一口气把其余的几种模式都配置了,过程中虽然因为自己sb,出现了一些错误,不过还是比较轻松就配置完成了,下面开始进入正题。

环境与工具

操作系统:Win10专业版 版本号:1511

VS版本:Visual Studio Community 2015

OpenCV版本:3.1.0 下载地址:http://downloads.sourceforge.net/project/opencvlibrary/opencv-win/3.1.0/opencv-3.1.0.exe

Cmake3.3.1 下载地址:http://download.csdn.net/detail/mooneve/9668883

OpenCV解压与Cmake

把上面提供的东西下载后,首先把OpenCV解压

打开之后选择好解压目录,注意命名,不然到后面很容易弄混的。我设置的路径为:E:\opencv

解压出来之后是这样的

然后安装Cmake,安装步骤按照默认的走就可以了。安装完后,打开Cmake,点击右边的Browse Source按钮,选择到我们刚才解压出来的opencv的源码目录:E:/opencv/sources

然后下面的框选择build的库目录:E:/opencv_build_x86

注意:我这里会写上x86是为了与后面生成x64的库进行区别,不同的库里面的文件是有差别的,所以大家最好在生成的时候也区分一下。

选择好目录后,就可以点击上图红框标志的Configure按钮,然后会弹出一个界面让你选择使用什么编译器进行生成库,cmake默认是使用x86进行生成的,也就是下图的Visual Studio 14 2015。

当我们想生成x64的库的时候,就要点击下拉菜单,选择Visual Studio 14 2015 Win64。

话题回来,当我们选择好了x86的Visual Studio 14 2015后,就点击Finish按钮,然后cmake就会开始进行一堆处理了,就像下图。

等一段时间后,它就会出现下面的红色背景。

在红色背景的框中,找到WITH_TBB这一项,然后把钩给选上。接着就点击Generate按钮开始生成x86的库文件了。

我们打开刚才设置的 E:\opencv_build_x86 目录就会发现里面多出了许多的东西。

进行到这里,我们就把x86的库文件生成好了,接下来就是生成x64的库了,步骤其实和上面差不多,

只不过要重新设置一个目录 E:\opencv_build_x64

然后选择Visual Studio 14 2015 Win64进行生成。

同样要记住,在红色背景的框中,找到WITH_TBB这一项,然后把钩给选上

最后同样得到了x64的库文件。

x86与x64库文件的Debug和Release模式编译


得到x86与x64库文件后,就开始要用vs2015进行编译了。首先我们进入x86的库目录E:\opencv_build_x64中,找到OpenCV.sln这一项,直接点击就会在vs中打开了。打开后解决方案的目录如下:

细心的话就会发现,这个项目在vs中只有win32的运行平台,而没有x64的,这也正好说明了这是x86的库。

我们首先选择上图中的Ddbug模式,然后在“解决方案”上右击选择“重新生成解决方案”,这样vs就会开始编译,生成x86平台的Debug模式下的文件,当然就是我们要的bin和lib。

当vs的输出中出现了下面的信息就代表编译完成了。

这个时候,我们进入E:\opencv_build_x86\bin\Debug 和 E:\opencv_build_x86\lib\Debug目录中,就可以看到生成的文件了。而在Release中则没有。

进行到这里,我们只是得到了x86平台下的Debug模式的文件,接下来当然就是Release模式下的了。步骤很简单,只是选择Release模式,然后在“解决方案”上右击选择“重新生成解决方案”。等待一段时间后,就Release模式下的bin和lib就同样得到了。

到这里我们就得到x86平台下的Debug 和Release模式的文件了。x64平台Debug 和Release模式的文件同样是用上面的方式生成。这里就不再重复了。

接下来就把生成的各种文件汇总吧!这样便于我们以后适用,而且除了生成的bin和lib外,其余的部分我们是用不到的,这些东西都可以删除掉,节约了相当一部分的硬盘空间(这些生成的文件占用了13.3G空间....)。当然,如果你以后使用的过程中想源码追踪的话,就当我没说。

把 E:\opencv_build_x86\bin 和 E:\opencv_build_x86\lib 这两个目录拷贝到E:\opencv\build\x86\vc14 目录中(这个目录是自己建立的);

把 E:\opencv_build_x64\bin 和 E:\opencv_build_x64\lib 这两个目录拷贝到E:\opencv\build\x64\vc14 目录中覆盖。

VS2015配置Opencv

首先是建立环境变量,在桌面上右键“此电脑”,选择“属性”,然后选择“高级系统设置”,在弹出的窗口中选择“高级”,然后点击“环境变量”。

在弹出的窗口中,找到Path变量,然后点击“编辑”

点击右上角的“新建”,把bin目录都添加进去,

E:\opencv\build\x64\vc14\bin\Release

E:\opencv\build\x64\vc14\bin\Debug

E:\opencv\build\x86\vc14\bin\Release

E:\opencv\build\x86\vc14\bin\Debug

如下图:

接下来在VS中新建一个C++的空项目。在项目中新建一个头文件stdafx.h,代码如下:

#pragma once
#define _WIN32_WINNT 0x0501 //XP以上
#include<opencv2\opencv.hpp>
using namespace cv;
#ifdef _DEBUG
#pragma comment(lib,"opencv_calib3d310d.lib")
#pragma comment(lib,"opencv_core310d.lib")
#pragma comment(lib,"opencv_features2d310d.lib")
#pragma comment(lib,"opencv_flann310d.lib")
#pragma comment(lib,"opencv_highgui310d.lib")
#pragma comment(lib,"opencv_imgcodecs310d.lib")
#pragma comment(lib,"opencv_imgproc310d.lib")
#pragma comment(lib,"opencv_ml310d.lib")
#pragma comment(lib,"opencv_objdetect310d.lib")
#pragma comment(lib,"opencv_photo310d.lib")
#pragma comment(lib,"opencv_shape310d.lib")
#pragma comment(lib,"opencv_stitching310d.lib")
#pragma comment(lib,"opencv_superres310d.lib")
#pragma comment(lib,"opencv_ts310d.lib")
#pragma comment(lib,"opencv_video310d.lib")
#pragma comment(lib,"opencv_videostab310d.lib")
#else
#pragma comment(lib,"opencv_calib3d310.lib")
#pragma comment(lib,"opencv_core310.lib")
#pragma comment(lib,"opencv_features2d310.lib")
#pragma comment(lib,"opencv_flann310.lib")
#pragma comment(lib,"opencv_highgui310.lib")
#pragma comment(lib,"opencv_imgcodecs310.lib")
#pragma comment(lib,"opencv_imgproc310.lib")
#pragma comment(lib,"opencv_ml310.lib")
#pragma comment(lib,"opencv_objdetect310.lib")
#pragma comment(lib,"opencv_photo310.lib")
#pragma comment(lib,"opencv_shape310.lib")
#pragma comment(lib,"opencv_stitching310.lib")
#pragma comment(lib,"opencv_superres310.lib")
#pragma comment(lib,"opencv_ts310.lib")
#pragma comment(lib,"opencv_video310.lib")
#pragma comment(lib,"opencv_videostab310.lib")
#endif

这段代码的作用就是当代码选择不同的编译模式即Debug或Release时,引用不同的lib文件。上面的lib文件中,末尾以d结尾的就是Debug模式使用的,没有d结尾的就是Release模式使用的。

然后在test项目名上右击,选择属性,打开项目属性页。这个时候就要注意属性页上的两个位置,如下图:

我们配置x86、x64的Debug和Release模式时,就是在上面两个选择的。 
        选择VC++目录,首先选择包含目录,点击右侧的下三角,选中编辑,在弹出的界面中,点击新建,依次把下面三个opencv的路径添加进去。
E:\opencv\build\include\opencv
E:\opencv\build\include\opencv2
E:\opencv\build\include
然后选择库目录,点击右侧的下三角,选中编辑,在弹出的界面中,点击新建,把下面这个目录添加进去。
E:\opencv\build\x86\vc14\lib\Release
注意:因为这个属性页上目前是配置的Release模式下的x86平台,所以添加的是这个库文件。其他的配置与这个类似。
       Release模式下的x64平台
Debug模式x64平台
        Debug模式x86平台
测试

到目前为止,vs2015与opencv3.1.0的配置就完成了。接下来就是测试我们的配置是否正确。新建一个cpp文件,代码如下:
#include "stdafx.h"
int main(int argc, char* argv[])
{Mat img = imread("fruits.jpg");imshow("input image", img);printf("Hello image!");waitKey(0);return 0;
}

在Debug的x86、x64和Release的x86、x64四种状态下,代码应该都是可以正常运行的。截图如下:

         Release模式下的x64平台


          Release模式下的x86平台

Debug模式下的x86平台

Debug模式下的x64平台

参考博客

http://blog.csdn.net/jarvischu/article/details/8468894

https://my.oschina.net/yuyang/blog/639590

http://blog.csdn.net/njlinxiang/article/details/51141555

Win10+VS2015平台下OpenCV3.1.0的x86和x64平台的Debug与Release模式的编译与配置相关推荐

  1. WCF 4.0 Issues with IIS 7.0 on x86 and x64 bit Machines(转载)

    If you are experienced with WCF, you know that in case of installing IIS after installing .NET frame ...

  2. win10+anaconda3+python3.6+opencv3.1.0

    最近用windows系统比较多,就想在win10下搞一下深度学习这一方面的研究,那么就需要配置好环境巴拉巴拉的一堆东西.默默记个笔记,正所谓"好记性不如烂笔头". 1.安装Anac ...

  3. PlatformIO平台下Arduino的开发过程-基于Visual Studio Code平台

    一.平台背景与关联 如果你是初学者建议阅读这一章节,搞清楚平台的结构对于开发而言有事半功倍的效果 (1)什么是Arduino? Arduino是一家制作开源硬件和软件的公司,同时兼有项目和用户社区,该 ...

  4. Win7下OpenCV3.2.0+VS2015配置

    参考自:https://blog.csdn.net/qq_22812319/article/details/78335880 一.预备知识 1.下载opencv时,opencv与vs版本是有固定关系的 ...

  5. VS2010平台下OpenCV编译和安装

    要点:            1) XP+ Visual Stuio 2010 + OpenCV-2.4.2.exe + cmake-2.8.8-win32-x86.exe             2 ...

  6. VS2015 + QT5.8 +Opencv342 Realease模式下编译ErrorLnk2019(debug_build_guard)

    最近在领用OpenCV3.4.2和QT5.8开发过程中遇到一些问题,在Release模式下编译的时候,经常报Error LNK2019. error LNK2019: 无法解析的外部符号 " ...

  7. Win10 64位+VS2015+Opencv3.3.0安装配置

    引言 最近准备搞一搞机器视觉方面的研究,所以着手进行环境的搭建.所使用的环境是Win10 64位+VS2015+Opencv3.3.0安装配置 Win10 64位+VS2015+Opencv3.3.0 ...

  8. win10安装VS2015、windows SDK的方法及OpenCV3.1.0的配置

    VS2015社区版或者专业版安装过程中,如果勾选了Windows SDK相关选项,一般都会提示Windows SDK和模拟器安装失败,查了很多网站,这个网上说的原因一般是因为自带的链接受到污染或恶意更 ...

  9. Win10下OpenCV3.2.0+VS2015配置

    本文主要参考不觉岁华成暗度的博客,链接为https://blog.csdn.net/qq_22812319/article/details/78335880 一,预备知识 1)已经安装完成VS2015 ...

最新文章

  1. 简评游戏人工智能相关的中文书(下)
  2. 网管员破网“利剑”——统一网络拓扑发现
  3. RFID和WiFi定位技术的比较
  4. 漫游飞行_魔兽世界:德拉诺时光周 冲声望解锁德拉诺飞行好时机
  5. 自动化 测试框架部署(python3+selenium2)
  6. phpcms调用后台上传的img图片 - 代码篇
  7. SQL:查询、替换字符串中的回车、换行、回车换行
  8. 光盘显示0字节可用_AT89C2051单片机开发点钞机外接显示屏
  9. JavaScript从入门到精通(全)
  10. 远程teamviewer|远程工具teamviewer|远程控制软件teamviewer
  11. 无线连接网络找不到计算机组,Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题...
  12. matlab打开excel乱码,ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
  13. 一些大牛的博客推荐,排名不分先后
  14. 新版本微信分享sdk(1.8.3)踩坑实录
  15. 没有喝上5G头啖汤的魅族,很难有出彩的机会了
  16. 详细讲解MySQL索引与联合索引
  17. 杰理之ANC电路设计注意事项【篇】
  18. Qt --- QTreeWidget 树形控件实例遇到的问题
  19. 复制文本功能兼容 微信ios 火狐浏览器
  20. 《浪潮之巅》13 幕后的英雄--风险投资

热门文章

  1. 数控采集002:体验华中数控Demo演示程序
  2. 如何提高条码打印机的速度?
  3. 【解决】SX1308无法升压、升压后接上负载电压就被拉低解决办法
  4. 如何在execl中制作列与列错开的表格?
  5. Win CVE-2019-0708漏洞 poc检测及修复补丁
  6. 3D建模能做什么?3D建模特点及优势研究
  7. 关于数字孪生技术国家政策及发展趋势
  8. 计算机控制接口板设计,计算机控制实验报告(过程接口板设计)
  9. android 设置动态头像,Android实现动态圆环的图片头像控件
  10. matlab plot函数 坐标轴标注