OpenCV学习笔记(22)OpenCV_SVN静态库的编译
来源:互联网 发布:mysqlfront导入数据库 编辑:程序博客网 时间:2024/04/29 17:46
之前按照常规方式(http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1)用Cmake和VS2008编译了OpenCV_SVN,都是生成动态链接库的,最近写的程序Release版需要静态连接库,于是边查Google边探索怎样生成和使用OpenCV的静态库。
一、参考《编译opencv2.1静态库》(http://blog.csdn.net/sophisticated/archive/2011/03/09/6234943.aspx),生成静态库。
1、在Cmake中去掉BUILD_EXAMPLES,BUILD_NEW_PYTHON_SUPPORT,BUILD_SHARED_LIBS,BUILD_TESTS,勾选OPENCV_BUILD_3RDPARTY_LIBS, WITH_JASPER, WITH_JPEG, WITH_PNG, WITH_TIFF 选项 (这里没有勾选WITH_OPENNI,如果需要使用应该要用 OpenNI 的源码另外生成相应的静态库)。
2、编译完成后,将静态库.lib文件覆盖复制到原来按常规方式生成的lib文件夹中,例如 VS2008_build/3rdparty/lib 和 VS2008_build/lib 。注意所编译的静态库中不包含 3rdparty 中的 videoInput64.lib 和 videoInput.lib ,这两个文件在 SVN 源码中直接提供,不需要编译生成。
二、使用时的常见问题
1、编译工程的Release版之前,先在项目属性—Configuration Properties—C/C++—Code Generation 的 Runtime Library 设置为 Multi-threaded (/MT) 。
2、在 项目属性—Configuration Properties—Linker—Input 的 Additional Dependencies 中,除了加入基本的 opencv_***220.lib 外,还要加入第三方lib,即 libjasper.lib , libjpeg.lib , libpng.lib , libtiff.lib , zlib.lib , opencv_lapack.lib 等,这些都与 opencv 的 core , highgui 等模块有关。
3、如果出现“error LNK2001: unresolved external symbol __imp__CreateToolbarEx@52” 的错误,则 Additional Dependencies 中需添加 comctl32.lib 。(参考《fatal error LNK1120: 1 unresolved externals》http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=1309&start=0&st=0&sk=t&sd=a)
4、如果出现“(cvcap_vfw.obj) : error LNK2001: unresolved external symbol _AVIFileRelease@4” 等错误,并不是opencv链接库的问题,而是opencv在调用win32下的vfw库,需要在 Additional Dependencies 中需加上 vfw32.lib 这个系统库文件,才能顺利编译。(参考《Opencv中highgui静态链接库使用时error LNK2001的错误》http://hi.baidu.com/56908268/blog/item/0f619bef2ce6efe1ce1b3efb.html)
5、如果出现“fatal error LNK1104: cannot open file “atlthunk.lib””的错误,是因为VS2005以上版本的ATL和MFC库中已不再带有这个文件,因此一般情况下可去掉对atlthunk.lib 的引用。参考《directshow 问题 找不到 atlthunk.lib》(http://topic.csdn.net/u/20090709/11/f3f9a286-9ef4-4e83-8808-26fb52ad5cb5.html)18、19和26楼的方法,在项目的头文件 stdafx.h 中添加如下代码:
如果确实需要用到 atlthunk.lib ,可以到这里(http://download.csdn.net/source/1672909)下载WDK7.0的ATL7.1,从中抽取出 atlthunk.lib,放到 $(VCInstallDir)atlmfc/lib 里。
- OpenCV学习笔记(22)OpenCV_SVN静态库的编译
- OpenCV学习笔记 OpenCV_SVN静态库的编译 .
- OpenCV学习笔记 OpenCV_SVN静态库的编译 .
- OpenCV學習筆記(22)OpenCV_SVN靜態庫的編譯
- 静态编译OpenCV过程笔记
- Opencv 编译静态库
- OpenCV编译为静态库的补充
- OpenCV编译为静态库的补充
- OpenCV - 编译静态OpenCV库(静态库)
- OpenCV - 编译静态OpenCV库(静态库)
- OpenCV编译为静态库
- QT(MinGW)静态库+Opencv静态编译
- OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住
- [opencv]OpenCV项目的动态编译和静态编译
- Opencv编译arm平台的静态和动态库
- 为Android平台编译支持OpenCL的Opencv静态库
- 学习OpenCV的学习笔记系列(二)源码编译及自带样例工程(转)
- 学习OpenCV的学习笔记系列(二)源码编译及自带样例工程
- 使用SPField的InternalName属性时的一点问题。
- Ext界面做图片动态加载的图片放大镜效果并解决JS内存泄漏问题
- Java 网络编程之 (完全总结)
- 【Qt开发】QString,std::string,char*,int等类型数据的转换
- 夫妇因违规驾车被拦停挥钢管殴打交警
- OpenCV学习笔记(22)OpenCV_SVN静态库的编译
- Android 【真机】与【模拟器】触摸屏事件的模拟差异分析
- Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序
- 小聚,顺便纪念大醉
- Window Presentation Foundation系列(3)---布局系统简介
- 轻生女孩跳下地铁站台被4节车厢滑过生还(图)
- 获取CMainFrame类指针
- nfs服务器的搭建
- 隐藏工具栏