安装环境:
Windows 7 64-bit
Visual Studio 2010 (VC10)
OpenCV配置:
目标是配置完成的VS2010环境可以编译使用OpenCV的x86,x64程序。
1.解压OpenCV安装包(
http://opencv.org/取得),
2.设置环境变量
(1)添加OPENCV_DIR,值为OpenCV解压目录下的.\Build\x64\vc10(主要是方便配置,增强可移植性,也可以不设置,下面的配置过程均用绝对路径代替).
(2)在PATH中添加项%OPENCV_DIR%\bin;(32位OpenCV程序执行用)和%OPENCV_DIR%\..\..\x86\vc10\bin;(64位OpenCV程序执行用).该步骤很重要,配置不当会造成编译的程序在运行时出错,为了令使用32/64位OpenCV库编译的程序均能正常执行,在PATH中将两项同时加入。
3.VS2010环境配置
单项目配置:
在 项目属性页->配置属性->VC++目录 中加入以下内容:
包含目录(include):
$(OPENCV_DIR)\..\..\include
$(OPENCV_DIR)\..\..\include\opencv (不用1.0版OpenCV头文件可以不加)
$(OPENCV_DIR)\..\..\include\opencv2
库目录(lib):
$(OPENCV_DIR)\..\..\x86\vc10\lib (x86版)
$(OPENCV_DIR)\lib (x64版)
在 项目属性页->配置属性->连接器->输入->附加依赖项 中加入以下内容(可根据需要选择性加入):
opencv_core248d.lib
opencv_imgproc248d.lib
opencv_highgui248d.lib
opencv_ml248d.lib
opencv_video248d.lib
opencv_features2d248d.lib
opencv_calib3d248d.lib
opencv_objdetect248d.lib
opencv_contrib248d.lib
opencv_legacy248d.lib
opencv_flann248d.lib
全局配置:
如果不想每次建立新项目均进行配置,可以把上述配置属性页选择性导出,每次建立新项目后附加即可.
例:x64版的附加用属性页
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>$(OPENCV_DIR)\..\..\include;$(OPENCV_DIR)\..\..\include\opencv;$(OPENCV_DIR)\..\..\include\opencv2;$(IncludePath)</IncludePath>
<LibraryPath>$(OPENCV_DIR)\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_core248d.lib;opencv_imgproc248d.lib;opencv_highgui248d.lib;opencv_ml248d.lib;opencv_video248d.lib;opencv_features2d248d.lib;opencv_calib3d248d.lib;opencv_objdetect248d.lib;opencv_contrib248d.lib;opencv_legacy248d.lib;opencv_flann248d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
OpenGL配置:
OpenGL库Windows自带,无需多加配置.下主要介绍glut环境配置.
glut可以说是一个OpenGL在windows下的图形化操作接口库,主要提供的是OpenGL的窗口化支持,基本上就是给windows下使用OpenGL进行开发的人员用来调试其图形程序(算法)的一个库.
1.glut库从官网上可下其源代码,常见为win32版,一个支持64位的Bin可从
http://www.idfun.de/glut64/下载.
2.解压后,需要将头文件/库文件放到缺省include/lib文件夹下 或 在VS项目属性中加入相应目录.
3.为了方便,我将glut.h放入$(WindowsSdkDir)include,将glut32.dll放入$(WindowsSdkDir)lib,将glut64.dll放入$(WindowsSdkDir)lib\x64.
4.最后,将动态链接库glut32.dll放入%windir%\SysWOW64,将glut64.dll放入%windir%\System32(我也很想吐槽这种奇葩的结构...如果不想放,就把dll与编译生成的exe放在一起也是可以的).
使用时需注意以下问题:原本glut库是建立在win32平台上的,对于后来加入的x64库,glut.h文件不会自动连接,其原话为:
/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
in your compile preprocessor options. */
# if !defined (GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
/* To enable automatic SGI OpenGL for Windows library usage for GLUT,
define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */
# ifdef GLUT_USE_SGI_OPENGL
# pragma comment ( lib, "opengl.lib" ) /* link with SGI OpenGL for Windows lib */
# pragma comment ( lib, "glu.lib" ) /* link with SGI OpenGL Utility lib */
# pragma comment ( lib, "glut.lib" ) /* link with Win32 GLUT for SGI OpenGL lib */
# else
# pragma comment ( lib, "opengl32.lib" ) /* link with Microsoft OpenGL lib */
# pragma comment ( lib, "glu32.lib" ) /* link with Microsoft OpenGL Utility lib */
# pragma comment ( lib, "glut32.lib" ) /* link with Win32 GLUT lib */
# endif
# endif
因此
,在使用glut64.lib时,需要自己在连接器的参数中加入该库.