使用openCV的静态库编译

时间:2022-12-23 13:47:49

转载请注明出处:

http://www.cnblogs.com/sysuzyq/p/6183568.html

By 少侠阿朱

摘要:

本文主要讲述如何使用opencv静态库进行编译,生成脱离opencv环境可执行.exe文件。

实现的效果:

此方法生成的exe文件在其他没有配置openCV环境的电脑上可直接执行。

使用到的工具:

openCV2.411

VS2013

debug模式下编译流程如下:

首先:项目的debug属性表

使用openCV的静态库编译

修改框中项目“$(OPENCV)\x86\vc12\lib;$(LibraryPath)”为静态库位置“$(OPENCV)\x86\vc12\staticlib;$(LibraryPath)”

使用openCV的静态库编译

其次:“C/C++”-“代码生成”-“运行库”改为“多线程调试 (/MTd)”,这个'd'表示debug模式。

使用openCV的静态库编译

然后:“连接器”-“输入”-“附加依赖项”中,在最开头加入:

IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
zlibd.lib 

使用openCV的静态库编译使用openCV的静态库编译

最后:

重新生成解决方案。记得选择debug模式。

使用openCV的静态库编译

则编译成功。

release模式下编译流程如下:

修改release的属性表

使用openCV的静态库编译

大家发现这一项是和debug属性表共享的,已经是“staticlib”:

使用openCV的静态库编译

然后大家会发现运行库这一项也是共享的,之前设置为“MTd”,现在我们需要改为“MT”。切记这里改了,则编译的时候一定要release模式,不然出错

使用openCV的静态库编译

然后是:

“连接器”-“输入”-“附加依赖项”中,在最开头加入:

IlmImf.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
zlib.lib 
注意这里和debug模式的不同,所有库都是没有'd'结尾的。

使用openCV的静态库编译使用openCV的静态库编译

最后:编译选择release模式。

使用openCV的静态库编译

编译通过。成功生成release版本的exe