1、下载opencv 3.1,并解压至F盘,这时F盘中会有一个opencv的文件夹;
2、下载最新的CMake(我当前使用的是CMake 3.4.3)并安装;
3、下载最新的stable release Eigen库(我当前使用的是Eigen 3.2.8),并解压,于F:\opencv文件夹中新建一个dep文件夹,并把解压得到的eigen-eigen-07105f7124f9文件夹拷贝至dep文件夹;
4、下载最新的stable release TBB库(我当前使用的是TBB 4.4 update 3),并同样解压至dep文件夹中,这里要注意不要下载source代码,而是下载windows* OS库,因为里面有预先编译好的tbb_debug.lib和tbb.lib,而这两个.lib文件是后续编译opencv时需要用到的;
5、于opencv文件夹中新建一个mybuild文件夹,然后打开CMake程序,并选择
source code路径为:F:/opencv/sources
build binaries路径为:F:/opencv/mybuild
之后勾选Grouped复选框,接着点击Configure按钮,在弹出的对话框中选择编译器为Visual Studio 14 2015,即32位版本;
6、在默认的CMake设置基础上,我做了如下改动:
- 在WITH group中uncheck WITH_CUDA;check WITH_OPENGL, WITH_TBB;
- 在BUILD group中check BUILD_EXAMPLES,BUILD_opencv_world;
- 在Ungrouped Entries中为EIGEN_INCLUDE_PATH设置为F:/opencv/dep/eigen-eigen-07105f7124f9;为TBB_INCLUDE_DIRS设置为F:/opencv/dep/tbb44_20160128oss/include
7、再次点击Configure按钮后,需要为TBB_LIB_DIR指定路径,设置其为F:/opencv/dep/tbb44_20160128oss/lib/ia32/vc14,首先由于前面选择的编译器为win32,因此这里选择ia32文件夹而非intel64,另外,这个路径一定要进一步选择至vc14,这一点至关重要,因为要是只设置到ia32文件夹的话,后续在编译opencv库的时候,会出现LNK1104 cannot open file 'tbb_debug.lib'错误,这是因为此时CMake generate的.sln中有多个工程依赖于外部文件_tbb_windef.h,里面有语句#pragma comment(lib, "tbb_debug.lib"),即链接时需要用到tbb_debug.lib,而如果没有提供到vc14文件夹的路径,那么这些工程的Linker->General->Additional Library Directories中就不会给出正确的包含tbb_debug.lib的文件路径。当然如果由于疏忽,在CMake时没有设置对路径也没有太大关系,因为可以手动为每个相关的工程在Linker->General->Additional Library Directories中重新把路径设置到vc14文件夹,只不过麻烦点,需要每个工程都更改一遍,如果CMake时就设置对路径就省去了这些麻烦。完事之后再次点击Configure应该就没问题了,接着再点击Generate生成OpenCV.sln;
8、双击打开OpenCV.sln,置于debug和win32,然后在菜单栏点击Build ALL_BUILD工程(记住不是Build Solution),或者右键ALL_BUILD工程选择Build;完事之后右键INSTALL工程选择Build;之后切换至release模式重复上述两次Build,最终编译得到的所有.dll和.lib文件以及.h头文件就位于F:\opencv\mybuild\install文件夹中。
The end.