OpenCV3.1-vc2008编译
来源:互联网 发布:滴胶印花t恤 知乎 编辑:程序博客网 时间:2024/05/23 20:17
本文尝试对OpenCV3.1在VC2008下进行编译,有不合理的地方请各位多多指正, 感谢!
1. 下载opencv-3.1.0.exe,并解压;
比如解压到:D:\opencv;
2. 安装CMake;
推荐版本:CMake 3.4.3
3. 打开CMake,选择opencv“源代码”所在目录和“目标”文件所在目录;
比如:
源代码目录:D:\opencv\sources
目标目录 :D:\opencv\sources
4. 点“configure”按钮,并选择编译器版本;
5. 这一步需要注意:在参数列表中:
1) 3D库opengl默认是不编译的,如果要编译,需要勾选:WITH_OPENGL;
2)VC 默认为编译动态库,如果要编译静态库需要取消勾选 :BUILD_SHARED_LIBS
3)VC在编译静态库的时候默认为以静态运行时库的方式编译,在VC中为“多线程(/MT)”
如果要使用动态运行时库”多线程DLL(/MD)”需要 取消勾选:BUILD_WITH_STATIC_CRT
4)默认不编译示例程序,如果需要,则勾选:BUILD_EXAMPLES;
6. 点“generate”按钮:
7. 如果编译器选择VC,则打开D:\opencv\sources\OpenCV.sln进行编译;
在解决方案管理器中,在INSTALL项目上点右键“生成”,VS会启动整个OpenCV编译链,
如果全部编译通过,则会安装在D:\opencv\sources\install目录中;
8. 注意事项:
1)如果用VC2008或以下版本编译,需要解压并复制inttypes中的文件到
D:\opencv\sources目录中。
2)如果用VC2008或以下版本编译,直接编译会出现报错:
报错1:
报错文件:D:\opencv\sources\modules\videoio\src\cap_mjpeg_decoder.cpp,第793行,
需要做如下改动:
m_file_stream.read(result.data(), chunk.m_size);
修改成:
m_file_stream.read(&result[0], chunk.m_size);
原因是std::vector不支持.data()方法;
报错2:
报错文件:D:\opencv\sources\samples\cpp\detect_mser.cpp,第285行
需要做如下改动:
float pi = (float)acos(-1);
修改成:
float pi = (float)acos((float)-1);
原因是acos编译的时候类型不能匹配,
inttypes下载地址:inttypes.zip
- OpenCV3.1-vc2008编译
- OpenCV3.1编译
- Ubuntu编译Opencv3.1
- 编译OpenCV3.1简略教程
- CMake编译VS2015+OpenCV3.1
- CMake+VS2013编译OpenCV3.1
- opencv3.1+opencv_contrib编译错误
- Cmake编译OpenCV3.1源码
- vc2008静态编译qt4
- VC2008 编译 QT4.7
- 使用VC2008编译sqlite
- VC2008下编译OpenSSL
- mangos vc2008编译问题
- boost 1.36 VC2008 编译:
- VC2008编译sqllite
- VC2008编译libthrift
- VC2008编译 配置 PortAudio
- UDT VC2008编译应用
- mini-uboot 启动过程简单分析
- [LeetCode]Self Crossing
- CentOS7.x安装MongoDB3.2.3教程
- BZOJ 2088/POI 2010 Teleportation
- 80. Remove Duplicates from Sorted Array II
- OpenCV3.1-vc2008编译
- python requests库 笔记
- linux C语言 SOCKET 服务器断开导致客户端SEND崩溃问题解决办法
- 进程间通信管道进阶篇:linux下dup/dup2函数的用法
- ZOJ-1007
- public static void main(String[] args)的理解
- angularjs表达式中不能直接调用外部的js函数
- svn更新出现冲突的解决方法
- c、c#---计时器