1、WindowsXP+VS2010+OpenCV2.2.0+TBB+CMake 2.8.4 编译配置成功1、下载文件OpenCV2.2.0http:/ OpenCV2.2.0 vs2010那个应该可以直接用不需要编译了。CMAKE 2.8.4http:/www.cmake.org/files/v2.8/cmake-2.8.4-win32-x86.exeINTELTBB3.0(下那个 stable release版)http:/threadingbuildingblocks.org/uploads/77/167/3.0 update 6/tbb30_20110315oss_win.zipVS201
2、0 (这个仅供参考:你懂的:)ed2k:/|file|cn_visual_studio_2010_professional_x86_dvd_532145.iso|2591844352|6001253431AFE573E4344F5A0B1D9CAC|/安装 vs2010很简单,网上查就行。不安装的话后面 CMake找不到想要的 vs2010的编译器哟。2、首先安装 CMAKE2.8.4,然后将 OpenCV-2.2.0-win.zip解压到 D:Program FilesOpenCV2.2(这个版本的 OpenCv 是不用安装的,直接解压就可用) ,接着,解压 INTEL TBB 3.0到 D
3、: Program Files Intel TBB3.0,并在OpenCV2.2文件夹下创建子目录 D:Program FilesOpenCV2.2vs2010,用于存放编译结果。检查 D: Program FilesIntel TBB3.0binia32vc10 是否已经被加入到环境变量 PATH(如何加入 path 请谷歌或百度)。加入后需要注销当前 Windows 用户(或重启)后重新登陆才生效。打开 CMAKE 2.8.4,在 Where is the source code 后面填写(或者选择)OPENCV 2.2 的安装目录,如 D: Program Files OpenCV2.2
4、,在 Where to build the binaries 里填写刚创建的子目录 D: Program Files OpenCV2.2vs2010。(本图片不是我安装时截图的。而是从网上下载的。所以图片里的是 OpenCv2.1。还有那个 CMake2.8.2。下面的图也是网上下载的。需要改动的地方我会说明,其他地方不用在意。) 。接着点击 Configure 按钮,在出现的对话框中选择 Visual Studio 10,下面的选项选择 Use default native compilers,点击 Finish继续。点击 Finish 后,CMake 就开始工作了。过一会儿。CMake 的
5、下面的信息框里显示Configure Done。并且,中间会红一片。如下图所示。在 Value 下面有一些框要打勾。勾选BUILD_NEW_PYTHON_SUPORT,BUILD_SHARED_LIBS ,BUILD_TESTS,OPENCV_BUILD_3DPARTY_LIBS,以及下面的WITH_JASPER,WITH_JPEG,WITH_PNG,WITH_TBB(一般这个没默认选上) ,和 WITH_TIFF 选项。勾好后再次点击 Configure,CMake 又开始工作。一会儿后,中间的窗口又会出现TBB_INCLUDE_DIR-NOTFOUND 字样的红色选项,此处因为 CMAKE
6、 找不到 INTELTBB 的包含文件为之所致,将 INTEL TBB 3.0 里面的 INCLUDE 文件夹路径(注意是INCLUDE,不是 INCLUDE 里面的子文件夹。即 D:/Program Files/Intel TBB 3.0)定位到该配置属性的路径里。将路径复制到红色行的右边即可。再次点击 Configure,在 TBB_LIB_DIR 处又会出现红色一行,此处为 INTEL TBB 的库文件位置,此处必须将路径定位到含有 LIB 文件的位置,比如我的安装位置是 D:/Program Files/Intel TBB 3.0/lib/ia32/vc10,也就是说,在 lib 文件
7、夹下会有子文件夹,必须定位到子文件夹对应的 VC 版本文件夹里去,这里由于是配置 VS2010,所以我们选择 VC10 文件夹,ia32 子文件夹是 32 位系统,此处应根据对应操作系统选择。将路径 D:/Program Files/Intel TBB 3.0/lib/ia32/vc10 复制到红色行的右边即可。然后,我们再次点击 Configure,此时所有红色行已经变为白色,同时在下方的信息里面会有一条为 Use TBB:YES 的字样(要拉上一点才能看到) ,证明我们已经将 INTEL TBB 配置完毕然后点击 Generate。一会儿后,出现 Generate Done。此时,会在目录
8、 D: Program Files OpenCV2.2vs2010 下出现一个VS2010 的解决方案文件 OPENCV.sln,双击打开后,出现 OPENCV 2.2 的所有工程项目,先不要着急编译。首先点击 Solution Explorer(解决方案资源管理器)里面 Property Manager(属性管理器)下的选项卡,依次展开 ALL_BUILDDebug|Win32右键单击Microsoft.Cpp.Win32.user,选择 Properties(属性),然后选择 VC+ Directories(VC+目录),在Executable Directories(可执行文件目录)里面
9、将 INTEL TBB 3.0 的可执行路径(bin)填写到里面,此处与 LIB 一样,必须定位到 VC10 才可以,例如我的是D:Intel TBB 3.0binia32vc10,将 Include Directories(包含目录) 定位到Intel TBB 的 Include 文件夹即可( D:Program Files Intel TBB 3.0include) ,无需再往深入定位,在 Library Directories(库目录)里填写 Intel TBB 的 LIB 文件位置,定位到 VC10 文件夹。D:Program FilesIntel TBB3.0libia32vc10.
10、单击确定之后,将选项卡切回到 Solution Explorer(解决方案资源管理器),将编译模式切换为Debug 模式,右键单击 Solution OpenCV(解决方案 OpenCV),选择 Rebuild Solution(重新生成解决方案)(如果提示失败,那么再来一次) ,编译后再右键单击 INSTALL 项目,选择 Build(生成),之后将编译模式切换为 Release,重复 debug 模式下的步骤(不是添加库的步骤,而且重新生成解决方案) 。完成后在你的解决方案文件夹 D:Program FilesOpenCV2.2vs2010 里面会生成 bin 目录, include 目录
11、, lib 目录。然后在 VS2010 里切回到 Property Manager(属性管理器),像上面一样展开Microsoft.Cpp.Win32.user 后选择 Properties(属性),最后在 VC+ Directories(VC+目录)里面 可执行文件目录 增加 D:Program FilesOpenCV2.2vs2010bin.包含目录 增加 D:Program FilesOpenCV-2.2.0vs2010include 和D:Program FilesOpenCV-2.2.0vs2010includeopencv。库目录 增加 D:Program FilesOpenCV-
12、2.2.0vs2010lib源目录 增加 D:Program FilesOpenCV-2.2.0vs2010testscv;D:ProgramFilesOpenCV-2.2.0vs2010testscxcore;D:ProgramFilesOpenCV-2.2.0vs2010testscxts;D:ProgramFilesOpenCV-2.2.0vs2010testsgpu;D:ProgramFilesOpenCV-2.2.0vs2010testsml;(应该也可以把所有的源代码文件都弄到一个文件夹里,这样就写一个路径就行了)(网上所说的 srccv、srccvaux、srccxcore、sr
13、chighgui、srcml。其实解压后OpenCv2.2 文件夹中是没有 src 这个文件夹的。不知道是不是这个原因导致了 vs2010 里面也没有 src 这个文件夹。同样,OpenCv 里有一个 tests 文件夹,在 vs2010 中也相应地生成了 tests的文件夹。现在就把 OpenCvtests 文件夹里的东西当做源目录吧)。检查 D: ProgramFiles OpenCV2.2vs2010bin 是否已经被加入到环境变量(我的电脑-属性-环境变量)PATH,如果没有,请加入,同样注销再登陆。到此 OPENCV 2.2 配置完成。以后建立 OPENCV 项目时都需在项目里面添加
14、依赖库 .Explorer(解决方案资源管理器)里面右击项目名,选择 Properties(属性)然后在 Linker(链接器)里面选择 Input(输入) ,在依赖库里添加 OPENCV 的 LIB 文件夹里的 LIB文件名称即可。Debug 需要的库文件:opencv_calib3d220d.lib;opencv_contrib220d.lib;opencv_core220d.lib;opencv_features2d220d.lib;opencv_ffmpeg220d.lib;opencv_flann220d.lib;opencv_gpu220d.lib;opencv_highgui22
15、0d.lib;opencv_imgproc220d.lib;opencv_legacy220d.lib;opencv_ml220d.lib;opencv_objdetect220d.lib;opencv_ts220d.libRelease 需要的库文件:opencv_calib3d220.lib;opencv_contrib220.lib;opencv_core220.lib;opencv_features2d220.lib;opencv_ffmpeg220.lib;opencv_flann220.lib;opencv_gpu220.lib;opencv_highgui220.lib;open
16、cv_imgproc220.lib;opencv_legacy220.lib;opencv_ml220.lib;opencv_objdetect220.lib;opencv_ts220.lib;opencv_video220.lib;这些库文件是需要哪些就添加哪些即可。如果不知道具体需要哪些的话,可以全部都加进去。这些文件的名称在不同的 OpenCv 版本不同。比如在2.1版本的 debug 是 cv210d.lib cvaux210d.lib cxcore210d.lib highgui210d.lib ml210d.lib。 release 是 cv210.lib cvaux210.lib cxcore210.lib highgui210.lib ml210.lib