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

0 0