- 作者: 知明所以 • 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 文件就像豐收的果實一樣帶着挑逗的表情對你微笑~~~.
說多了都是累贅, 只有你自己親自操作, 才能體會到滿滿的幸福: