其实已经有一些资料介绍了OpenCV1.0如何编译为静态库,但这些资料多为针对vc6.0的。最近试了许久,才终于在VS2005下编译出了一个独立的应用程序。现在将设置关键记录一下。
首先,OpenCv项目中,cv,cvaux,cvcore,cxts,highgui,ml几个工程,是需要编译为静态库的,其它的是测试用的工程。这几个库,有部分没有OpenMD优化,所以设置的时候,就选择Release版就行了。这些工程都需要在属性设置中设置:
General->Ouput Directory: 最好把每个工程的这个属性设置成一个共公的目录,以方便别的应用程序引用
General->Configuration Type: Static Library (.lib)
C++ -> Code Generation ->Runtime Library : Multi-threaded (/MT)(debug版时要设为 Multi-threaded Debug(/MTd))
对为highgui这个工程,还要额外设置
librarian -> General -> Additional library directories: .../OpenCV/otherlibs/_graphics/lib (注意改成自己的)
librarian -> General -> Additional Dependencies : 写入以上目录里的个个.lib,注意不要写成x64或bcc的版本
当要编译独立应用程序时(主要是Release版),关键的地方
C++ -> Code Generation ->Runtime Library:Multi-threaded (/MT)
Linker -> Input -> Ignore Specific Library: libcmt.lib(也许还会有其它的)
再设置包括相应的.lib库,就可以独立运行了。不再需要那几个.dll文件了。不过,.exe文件也一下大了很多。
此文已经过时,请参考新篇http://blog.csdn.net/jarodpku/archive/2008/10/15/3081298.aspx