【Win10 + CMake 3.7.0-rc1 + VisualStudio 2015 】【OpenCV2.4.13 + tbb】重新编译
2016-10-11 12:42
507 查看
问题起源
尝鲜安装了visual studio 2015 Professional版本,并且升级到Update 3,发现OpenCV没有提供适应VS2015编译好的版本。因此,我尝试利用CMake 3.7.0-rc1(x64)和VS 2015 Pro对OpenCV 2.4.13的源码进行编译。
注:实际上OpenCV 3.0中有编译好的版本,但是由于版本更新过程中触及了SIFT等一大批专利的问题,导致OpenCV3.0以后的版本中没有nonfree的库,图像处理中常用的特征提取无法用。因此这就解释了为什么题主花精力非要编译2.4.13版本。
编译工具配置
HASH文件校验工具下载文件的校验非常重要,特别是编译环境工具和代码相关文件,切记切记!仍记得当年看到的白帽子大会上那个隐藏在编译器中的可怕魔鬼,尽管md5校验已经被证明有漏洞了,但目前只能用这种办法确定。我选择了“深空HASH计算工具 V2.0”,这是为了能够比对CMake提供的SHA-256,通常使用的Hash 1.04工具不能够提取SHA-256。
VS2015 Pro Update3
我是利用学生账号在微软官方上下载的,并且通过了文件校验。
CMake 3.7.0-rc1
CMake官网上下载的稳定版本,建议有能力都下载x64版本,这样对后续的编译有好处。下载后通过文件校验后安装。
OpenCV源码和其所使用第三方库下载
OpenCV 2.4.13OpenCV官网下载:下载页面链接。通过文件校验后进行提取(Extract),请保证提取的路径是全英文/数字/下划线符号组成,尽量不要包含中文和特殊字符。
tbb下载
tbb全称是Threading Building Blocks,线程构建模块,是Intel公司开发的并行编程开发的工具。opencv的源码中已经对tbb进行了一定程度的封装,部分是经过优化的。因此在用Cmake编译OpenCV过程中最好加入tbb。
tbb下载:tbb官方网站首页。
编译过程
本文中以64位编译为例说明,配图也均是64位编译的流程。CMake编译
首先,填入opencv源码所在文件夹路径和编译的目标生成路径,并点击下方的Configure按钮。这里,”…/opencv/sources”就是刚才下载好的opencv进行解压后的源码目录 。”…/x64/vc14”是我自己新建用来存CMake生成的visual studio工程文件的目录(CMake在本任务中的功能就是利用源码生成VS2015工程)。
然后,在出现的对话框中选择合适编译器,如果是64位编译请选择“Visual Studio 14 2015 Win64”,如果是32位编译请选择“Visual Studio 14 2015”。
点击“Finish”,等待下方的状态窗口中出现“Configuring done”的字样。这时出现的Warning可以忽略,这是由于OpenCV源码中没有VERSION的定义造成的。接下来将配置空间中的WITH_TBB项目点选,如下图所示。
重新点击“Configure”。出现错误,如下图图所示
这是因为没有输入tbb的包含目录TBB_INCLUDE_DIRS,按照解压缩的路径输入合适包含路径
再次点击“Configure”,注意检查TBB_LIB_DIR和TBB_STDDEF_PATH是否正确,如下图是正确的情况:
点击“Generate”即可生成VS2015工程,下方状态窗口中出现“Generating done”字样即可。
至此,CMake编译全部结束。
VS2015编译
用VS2015打开CMake编译好的工程文件(或者可以直接在CMake的gui界面点击“Open Project”),工程文件位于CMake的输出路径中:
接下来,修改CMakeTargets项目文件夹中的ALL_BUILD项目的选项,如图所示,分别在可执行文件目录,包含目录,库目录中添加tbb的相关路径。
点击“应用”,“确定”,并重新生成ALL_BUILD,ALL_BUILD生成成功后重新生成 INSTALL,成功后可以再工程文件所在的同级路径下发现新生成的install文件夹(具体路径为…/install/x64/vc14以及…/install/include),其中有编译好的opencv。
至此只是完成了Debug模式下的编译,将整个解决方案切换到Release模式,重新配置ALL_BUILD的属性,重新生成ALL_BUILD和INSTALL。至此VS2015编译部分结束,将…/install/include与…/install/x64目录拷贝一份即可添加opencv到自己的工程中。
相关文章推荐
- 【Win10 + CMake 3.7.0-rc1 + VisualStudio 2015 】【OpenCV2.4.13 + tbb】重新编译
- [OpenCv]Win10 X64 + VS2015 + CMake3.6.1 编译OpenCv3.1.0记录
- WIN10 + OpenCV3.4 + CUDA8.0 + Cmake3.9.0 + TBB + VS2015配置/重编译
- CUDA8.0+OpenCV2.4.13+VS2015+Win10+TBB混合编译
- WIN10 VS2015 Cmake编译 opencv3.3 cuda9.0
- win10下使用CMake编译OpenCV2.4(配置VS2015之前)
- VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库
- VS2015+CMake编译OpenCV2.4.13静态库,以及Opencv3.4.1静态库
- caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置
- Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
- win10 vs2015 opencv编译
- Cmake3.8+VS2013+Win10编译OpenCV3.2+opencv_contrib遇到的问题
- win10 使用cmake编译opencv源码生成VS工程(二)
- opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库
- VS 2015 64位CMake编译openCV3.1.0必备文件
- Windows下利用CMake和VS2013编译OpenCV(TBB编译)
- Win10 下Cmake3.8.0编译配置 Opencv3.2 + Cuda8.0 + VS2010
- OpenCV 2.4.13 编译使用(VS2015下)