实用图像处理入门 - 2 - Windows平台下编译openCV
- 作者: 知明所以 • Milo
- 博客: http://www.cnblogs.com/jhzhu
- 邮箱: jhzhuustc@gmail.com
- 日期: 2013年7月22日
1 环境准备
- Visual Studio 2012
- opencv 2.4+ ( 目前是2.4.6, 下载链接 ). ( 假设已安装完毕, opencv安装目录以下用 {opencv} 表示 )
- CMake ( 下载链接, 用来编译 opencv )
2 详细步骤
安装好 CMake 后, 在开始菜单里找到 CMake(cmake-gui) 打开.
如下设置:
位置1: 填写 opencv 的安装目录.
位置2: 填写你希望 build opencv 后的目标位置. 下文中用 {cvBuild} 表示.
填写好位置1和位置2后, 点击 位置3( Configure 按钮 ). 选择 Visual Studio 11 ( 针对 VS2012, 如果是其它版本, 选择对应的版本即可 )
点击位置4( 按钮 Generate ). 便可生成 opencv 项目.
完成后, 打开生成项目的目录( 上上图 位置2处 填写的目录 ). 双击 "OpenCV.sln”. 会启动 VS2012, 你会看到以下界面.
点击菜单栏 “BUILD –> Build Solution “ 开始构建整个解决方案.
构建过程可能需要比较长时间. 更可恨的是等这么长时间, 还得不到我们想要的结果: 会出现各种讨厌的 ERROR!
14胜 47负! 简直惨不忍睹. 查看输出日志, 发现罪恶的源头在这里:
1
|
9>D:\greenApps\opencvBuild2\3rdparty\zlib\zconf.h(449): fatal error C1083: Cannot open include file: 'unistd.h' : No such file or directory |
google一下, 发现很多人都遇到这个问题. 解决方案 如下 ( 原文链接 ):
新建文件 unistd.h. 文件内容如下:
1
2
3
4
5
6
7
8
|
/** This file is part of the Mingw32 package. * unistd.h maps (roughly) to io.h */ #ifndef _UNISTD_H #define _UNISTD_H #include <io.h> #include <process.h> #endif /* _UNISTD_H */ |
把文件放到 {cvBuild}\3rdparty\zlib 里.
在 VS2012 里选择构件类型为“Release",如下图所示:
再次执行 “BUILD –> Build Solution”, 如果有某个Project构建”fiailed”, 重新构建即可.
打开 {cvBuild}/bin/Rlease 文件夹, 你会看到满满一屏的 *.dll 和 *.exe 文件就像丰收的果实一样带着挑逗的表情对你微笑~~~.
说多了都是累赘, 只有你自己亲自操作, 才能体会到满满的幸福: