静态编译opencv

        opencv确实是图像处理里最实用的库,拥有非常全面的算法,还有很多大牛的不断更新,每一次的新版本都会更新时下很流行且有效的算法。且具有一定的时时性。opencv能够支持各个系统,包括手机安卓或IOS,使用起来非常方便。

        实际使用中,考虑到可执行文件的平台兼容性,如果选择动态编译(动态编译opencv的方法网上有非常多,这里就不介绍了,可以参考:opencv动态编译方法),在可执行文件夹下需要添加相应的dll文件。有时想要将代码编译进exe,则需要静态编译opencv。以下是我用opencv2.4.9成功的静态编译,但是同样的方法用opencv2.1却并没有成功,这里附上另一个方法,没有试验过,看起来应该可行:其他方法

1、运用Cmake选择source code文件夹路径与build路径:

主要是build_sheared_libs这一项不要勾选,则生成的文件是静态编译的,后面的选项可以选上opengl,png,tiff等图像库,生成的opencv对应的VC工程。

2、打开opencv工程,在3rdparty与applications文件夹下的工程选中后配置属性,配置C/C++中代码生成项中,“运行时库”项,在debug模式下配置为"多线程调试/MTD",release模式下为"多线程MT",配置好后编译生成即可,最后在VC中添加opencv的包含目录与库文件目录。

3、在自己的VC工程里,按照同样的方法配置“运行时库”,加入相应库即可,编译时可能会出现链接错误,则需要加入库:vfw32.lib与comctl32.lib,若勾选了opengl还需添加opengl32.lib,可以直接加在链接器选项的附加依赖项里或者加入语句:#pragma comment( lib, "vfw32.lib" )   #pragma comment( lib, "comctl32.lib" ) #pragma comment(lib,"opengl32.lib")。

       按照以上方法,可将工程中用到的opencv函数编译进exe文件,则不需要dll文件,不过好像在debug模式下编译会无法链接通过,原因是重定义了win32相关函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值