opencv3.0 vs2008 编译静态库
最近因工作需要,需要编译64位的opencv静态lib库,由于之前一直用dll文件,这次还是走了不少弯路,用多长时间,就不说了,不好意思,也主要自己对微软的东西不是很感冒,好久搞不明白,这里坐下备注,防止日后再用到找不到。
先说环境吧,vs2008因为一直都在用,不像换新的,所以这次还是在vs2008平台下编译,opencv采用最新的opencv3.0 beta版本,cmake也是采用最新的cmake3.1.0-rc2,
cmake编译源代码如下

###cMake
编译静态库,主要的一项就是BUILD_SHARED_LIBS,这个东西我觉得名字有点怪,选了它编译出来的是dll,反之是lib,让人不得其解,其他的诸如BUILD_EXAMPLE,BUILD_TEST,BUILD_PERF_TEST,都可以不编译,还有一项,BUILD_OPENCV_WORLD,这是很好玩的,之前添加lib库文件,需要添加一大堆,现在如果选择了这一项,一个lib可以替代之前的一大堆lib了,甚是方便,推荐使用,其他的可以根据自己需要选择或去除了,反正我也不懂,呵呵,就都默认了。最后加一句,在编译64位lib时,只需要第一步选择不同的编译器就行了,如上图所示就是编译的64位lib。
###编译opencv
这个没什么可说的,在Solution上右键Rebuild即可,然后INSTALLbuild即可完成编译,
###opencv测试代码
其实这一步是最纠结的,因为没有用过静态库,所以除了不少岔子,甚是窝火,编译就是400多个错误,
我编译出来的lib文件如下图所示:

在我link里面添加了诸多lib后,还是除了很多error,可以上图看到一个编译时间跟别人不一样的,ippicvmt.lib就是他了,这个也要加上,要不很多错,到这里,几乎上就可以了,可还有最后一个没有添加上,网上搜索相应错误,添加comctl32.lib不知道是啥东西,反正是可以了,而且x86和x64都是这个文件,到现在为止,一切都已ok,编译的程序也可以脱离VS和opencv独立运行了,希望其他童鞋看到这个能少走弯路吧!


