windows环境编译Opencv4.0.0问题总结

主要说明三个问题:

1、静态库和动态库的编译方法

2、world版和分开编译的版本说明(cmake选项)

3、出现的错误解决方案。

 

(1)使用静态库,出现连接错误(使用动态库比较简单,用到哪个就直接关联哪个lib即可)

需要关联的静态库有如下:

zlib.lib

ippicvmt.lib

ippiw.lib

ittnotify.lib

opencv_world400.lib

处理过程,先关联opencv_world400.lib 提示一堆无法连接的错误,然后根据提示的名称,把相关名称的lib也关联进去。

其中碰到一个问题:我的工程有用到zlibstat.lib,这和cv使用的zlib.lib会冲突。

我用了强制输出的办法,解决了此问题,运行未出现问题(可能存在风险)。命令为:/force

(2)编译期间出现语法问题:

error C2059: 语法错误:“<L_ATTRIBUTE_SPECIFIER>

check_cycles.cpp(33): note: 参见对正在编译的类 模板 实例化

range_iterator.hpp(34): error C2100: 非法的间接寻址

问题:我的vs15支持c++11比较差(早期版本,还存在一些bug),更新vs2015后编译即可成功,在线更新visual studio 2015花了我3个小时啊。

(3)在CMake生成工程配置期间有选项,说明要配置成静态库还是动态库。

build_shared_libs 勾选--编译动态库  不勾选--编译静态库

build_opencv_world 勾选--编译一个库文件,不勾选--分开编译库文件,据说是opencv3以后的版本支持world模式的编译。

20181130