opencv3.2生成不依赖vs2015的dll
来源:互联网 发布:关键词分分析软件 编辑:程序博客网 时间:2024/05/20 04:13
下载opencv3.2.exe
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/opencv-3.2.0-vc14.exe/download
从官网直接下载得到的opencv-3.2.0-vc14.exe,在安装之后,可以在文件夹中看到其所使用的opencv_world320d.dll以及opencv_world320.dll都是依赖vs2015的
这样就会导致,所生成出来的exe还需要外带一个140.DLL
从下面开始,就来重新编译opencv3.2,生成一个不依赖vs2015并且区分工程的dll
首先需要用到的是cmake
从这里下载http://download.csdn.net/detail/zengraoli/9814295
得到cmake,解压后打开里面的cmake-gui.exe
在gui中配置opencv
在1处填入上面释放出来的opencv源文件路径(下的文件夹sources)
在2出填入生成出来的vs工程路径
接下来选择configure
会让我们选择生成解决方案的工具版本
注意改变这里的选项
a、修改需要不依赖vs的设置
b、修改只生成一个dll的设置(会比较大,可选,这里先去掉)
接下来是最后一个,选择generate
完成之后,就可以在目录D:\opencv2015看到vs的opencv工程了
用vs2015打开这个工程
在vs2015中进行配置(主要针对release版本)
对这几个项目
在属性页中,修改其运行库为/MT
统一生成一次解决方案,会出现下面的错误
3>cap.obj :error LNK2019: 无法解析的外部符号 "void __cdecl `eh vector destructoriterator'(void *,unsigned __int64,unsigned __int64,void (__cdecl*)(void*))" (??_M@YAXPEAX_K1P6AX0@Z@Z),该符号在函数 "public: virtual void * __cdeclcv::VideoCapture::`vector deleting destructor'(unsigned int)"(??_EVideoCapture@cv@@UEAAPEAXI@Z) 中被引用
3>cap_mjpeg_encoder.obj: error LNK2001: 无法解析的外部符号 "void __cdecl `eh vector destructoriterator'(void *,unsigned __int64,unsigned __int64,void (__cdecl*)(void*))" (??_M@YAXPEAX_K1P6AX0@Z@Z)
3>opencv_videoio_pch.obj: error LNK2001: 无法解析的外部符号 "void __cdecl `eh vector destructoriterator'(void *,unsigned __int64,unsigned __int64,void (__cdecl*)(void*))" (??_M@YAXPEAX_K1P6AX0@Z@Z)
3>opencv_videoio_pch.obj: error LNK2001: 无法解析的外部符号 _purecall
3>cap.obj :error LNK2001: 无法解析的外部符号 _purecall
3>cap_mjpeg_encoder.obj: error LNK2001: 无法解析的外部符号 _purecall
3>cap_mjpeg_decoder.obj: error LNK2001: 无法解析的外部符号 _purecall
3>cap_dshow.obj: error LNK2001: 无法解析的外部符号 _purecall
3>cap_dshow.obj: error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>cap_vfw.obj :error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>cap_ffmpeg.obj: error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>opencv_videoio_pch.obj: error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>cap.obj :error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>cap_images.obj: error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
3>cap_mjpeg_encoder.obj: error LNK2001: 无法解析的外部符号 "void * __cdecl operator new(unsigned__int64)" (??2@YAPEAX_K@Z)
得到两个生成不正确的dll
这两个分别是opencv_highgui320.dll和opencv_videoio320.lib
找到这两个工程,在属性页中的
忽略库都给去掉
再次编译
查看生成的dll
在目录D:\opencv2015\bin\Release中找到生成的dll文件
可以看到是多个dll的,跟从官网解压出来的单个还是有区别的
在depends.exe中可以看到这些dll已经不依赖vs2015了
- opencv3.2生成不依赖vs2015的dll
- opencv3.2生成不依赖vs2015的dll
- Python生成了不依赖dll的exe
- win10的VS2015下配置opencv3.2
- OpenCV3.2 + VS2015的环境配置
- OpenCV3.2+VS2015配置
- vs2015配置opencv3.2
- VS2015配置OpenCV3.2
- Opencv3.2+VS2015环境配置(VS2015以下版本需要自己编译dll)
- Opencv3.2+VS2015环境配置(VS2015以下版本需要自己编译dll)
- 针对opencv3.0和VS2015出现msvcr120d.dll缺失的问题
- 用Python生成不依赖dll的exe的操作步骤简介
- win10+opencv3.2+vs2015配置
- opencv3.2+VS2015 win10配置
- vs2015 生成dll和lib
- VS2015自己生成DLL库
- 借助WDK7.1让高版本VC生成的可执行文件不依赖msvcrtXX.dll
- VS2015+opencv3.2的dnn库跑caffe格式例子
- 在 Ubuntu 14.x 搭建 Nginx Uwsgi Django 环境之(三):连接 nginx 和 uwsgi
- 链表类面试题
- Git远端仓库被不同版本的本地仓库push,不能正常提交代码
- HDU 1020 Encoding
- 二分贪心d
- opencv3.2生成不依赖vs2015的dll
- 霍夫曼编码的实现(数组模拟)
- Android之Activity的四种启动模式
- cookie,sessionStorage,localStorage分别是什么,以及三者之间的区别
- AVL树的旋转LL RR LR RL
- ES6的let和const命令(一)
- Java容器_4个接口
- 【学习笔记】java面向对象复习04
- SRM 562 Div1 500 CheckerFreeness