Opencv在MFC静态库的配置

OpenCV[6]的配置一般是在共享动态链接库下的配置的,在静态库下的配置有点稍微区别:

(1)库目录需配置OpenCV的静态库

Opencv在MFC静态库的配置_第1张图片

(2)设置MFC为静态链接

Opencv在MFC静态库的配置_第2张图片

下面是把OpenCV之类的库设置成静态库

Opencv在MFC静态库的配置_第3张图片

(3)最关键的一步是连接器的输入项设置:

nafxcw.lib //这个lib添加参考[5]
opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248.lib
opencv_nonfree248.lib
opencv_objdetect248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_videostab248.lib
zlib.lib
IlmImf.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib //zlib.lib到libtiff也是OpenCV中staticlib文件夹下的lib,常常被人民所忽略。
vfw32.lib //这个lib添加参考[2,1]

comctl32.lib //参考[1]没有这个lib会产生opencv_highgui248.lib: error LNK2001: unresolved external symbol -Imp_createToolbarEx@52

Opencv在MFC静态库的配置_第4张图片

如果照着[6]的配置静态链接就会产生下面的问题:

Opencv在MFC静态库的配置_第5张图片

Opencv在MFC静态库的配置_第6张图片

最后说一下[7],这个静态链接库,只要把.h和.lib文件加入工程文件夹即可。

而动态链接库有两种方法,一种是把.h、.lib和.dll文件加入到工程中,这就是我们经常配置[6]OpenCV的方法,也就是虽然是动态链接也需要配置.lib库的原因,.h文件路径是VC++ Directories下Include Directories下配置的,dll文件路径是在VC++ Directories下Executable Directories下配置的,或者更改环境变量path。还有一种方法是只单独使用dll文件,需要函数指针和WIN32 API函数装载,详情参考[7]。

同时#pragma comment( lib) 语句并不是静态链接,只能是工程是静态链接的,才会生成静态链接的。参考错误[8]

参考:

【1】OpenCV Unresolved External Symbols - Other Libraries Needed? http://stackoverflow.com/questions/8098272/opencv-unresolved-external-symbols-other-libraries-needed

【2】opencv highgui静态库在windows下链接问题 http://hi.baidu.com/jimmywood1987/item/a8f22612486897fddceecaa7

【3】在静态库下使用MFC和共享DLL下使用MFC 这两种情况 opencv的配置,以及配置opencv配置中容易出现的问题 http://blog.csdn.net/computer_liuyun/article/details/26978073

【4】opencv 在MFC中的使用有关问题 http://2.soadmin.com/kaifayuyan/cpp/498327.htm 

【5】nafxcw.lib与LIBCMT.lib在vs2008中链接冲突解决方案 http://hi.baidu.com/dyqq1234/item/e124228c441b05814514cf2f

【6】VC 2008 Express下安装OpenCV2.3.1 http://wiki.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1

【7】c++中.dll与.lib文件的生成与使用的详解 http://www.jb51.net/article/36447.htm

【8】LIB 静态链接库 http://www.cppblog.com/ivenher/articles/1310.html


你可能感兴趣的:(Opencv在MFC静态库的配置)