您的位置:首页 > 运维架构

[OpenCv]Win10 X64 + VS2015 + CMake3.6.1 静态编译OpenCv3.1.0并测试

2016-08-07 19:36 274 查看
列表内容

一、OpenCv3.1.0配置

点击查看动态编译博客

二、CMake3.6.1安装

点击查看动态编译博客

三、使用CMake3.6.1编译OpenCv3.1.0

开启CMake

开启CMake,如图 1



选择 source文件地址编译生成的文件存放地址

source文件地址选择OpenCv解压文件中的source文件,打开source文件,我们可以看到里面的文件如图 2,其中CMakeList.txt文件就是指导CMake编译的描述文件,想看懂改描述文件的同学可以看看CMake入门



编译生成的文件地址选择了与source上一级同级的文件夹 buildS,该文件夹不存在,但是CMake会帮你创建,选择好了后如图 3:



Configure

点击图 7左下角Configure按钮,软件会自动检测到电脑安装有VS2015(注意一定要选对版本),就帮你选定将该Source文件编译成VS2015项目,如图 4;



我们需要点finish按钮进行确认,确认之后得到的结果如图 5:



此时 buildS 文件夹中已经有生成的文件了,如图 6



个性化设置

在图 6中,我们勾选一些我们需要的设置,设置后的结果如图 7 和 图 8 所示(这里说明一下 比如 BUILD_EXAMPLE 我们不知道什么意思,可以将鼠标移动到该属性上面停留一会,就可以看到相应的解释了);

BUILD_EXAMPLE checked

BUILD_opencv_world checked

BUILD_SHARED_LIBS not checked





生成

在生成之前,我们需要在次点击Configure按钮,使得我们刚刚的设置得以生效,在这一步需要连接外网下载一个ippicv_win的压缩包,如果在这一步出现问题,可以上网搜索下载这个文件,放到相应的文件夹中

然后我们点击Generate按钮,开始生成VS项目,生成结束之后,我们可以看到buildS 文件夹中的内容如图 9所示,和图 6对比,多了很多VS工程中出现的文件:



在VS2015中生成dll和lib文件

在VS2015中打开图 9中的 OpenCv.sln,点击生成-->批生成,如图 10选择:



点击Generate按钮,开始生成,生成过程如图 11,等待时间根据电脑配置,30--60min不等:



四、使用自己静态编译好的OpenCv lib,发布可以脱离OpenCv环境运行的exe文件

删除环境变量

由于我们需要发布可以脱离OpenCv 和 VS 2015环境的exe 可执行文件,为了证明我们编译产生的exe是可以独立运行的,我们要把之前配置的有关OpenCv的环境变量删除;

Vs 2015中创建一个空的 Win32控制台程序

在这个程序中,在源文件中添加一个drawing.cpp,可以在

DOWNLOAD|drawing.cpp中下载;

在属性管理器中设置Release属性

在Release|64X 中设置新建一个props文件,(名为openCv310Rel64)(名字自己取,但是最好能够把其对应的信息展示在名称当中),这样的好处是在之后创建其它的OpenCv工程之后,直接将这个props文件导入到根目录,并添加到工程中就可以配置好OpenCv的库了;如图 12 (这里由于我们只是创建了这个props文件,但是没有对其中的属性进行设置,所以这里程序中会报错)



对自己创建的props文件进行配置相应的属性

a.

C/C++–> 常规 –> 附加包目录,添加如下图 13目录,根据自己的路径相应改一下:

C:\OpenCv\buildS\install\include

C:\OpenCv\buildS\install\include\opencv

C:\OpenCv\buildS\install\include\opencv2



b.

C/C++–> 代码生成 –> 运行库,设置为 多线程(/MT)

说明 多线程(/MT)的意义:

使得程序其连接的是libcmt.lib,该文件属于C语言运行时库,整个lib都会连接到PE文件当中;

把对应的运行时库直接放到编译出来的exe文件当中,是的该程序可以在没有对应环境的电脑上运行;



c.

链接器 –> 常规 –> 附件库目录,设置的目录入下:

C:\OpenCv\buildS\install\x64\vc14\staticlib

这一设置的意义在于,告诉VS编译时,需要加入到exe文件中的lib应当去哪里找,设置如图



d.

链接器 –> 输入 –> 附加依赖项,添加如下lib

IlmImf.lib

ippicvmt.lib

libjasper.lib

libjpeg.lib

libpng.lib

libtiff.lib

libwebp.lib

opencv_ts310.lib

opencv_world310.lib

zlib.lib

如图



e.

调试生成exe文件,如果有生成的exe文件在其它没有设置OpenCv环境和VS环境的电脑上运行,那么就代表静态编译设置成功。点击下载编译好的exe文件



备注

如有错误,欢迎指正

如需交流,请私信新浪微博@IT技术N
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息