type
status
date
slug
summary
password
tags
category
icon
1.安装环境
提前在电脑中安装以下软件或环境
- Windows-10
- OpenCV-4.5.5
2.使用cmake-gui配置编译
1.打开 cmake-gui,设置源码和生成路径:
(第二个路径为自己创建的编译路径:要和第一个同级目录)
- Where is the source code:
E:/opencv_455/opencv/sources
- Where to build the binaries:
E:/opencv_455/opencv_mingw64_build
2.点击 Configure,设置编译器(很关键)
- Specify the generator for this project:
MinGW Makefiles
- Specify native compilers
- Next
- Compilers C:
E:\MinGW-w64\x64-4.8.1-release-posix-seh-rev5\mingw64\bin\gcc.exe
- Compilers C++:
E:\MinGW-w64\x64-4.8.1-release-posix-seh-rev5\mingw64\bin\g++.exe
- Finish
3.编译配置(默认的其它选项不改)
- 勾选
WITH_OPENGL
- 勾选
ENABLE_CXX11
- 不勾选
WITH_IPP
- 不勾选
ENABLE_PRECOMPILED_HEADERS
4.再次点击 Configure====》》Generate 生成 Makefile
无报错即可
3.编译 OpenCV
打开自己创建的
E:/opencv_455/opencv_mingw64_build 的路径终端cmd
进行编译
4.自己出现的编译 OpenCV错误
调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)
1.程序的CMakeLists.txt文件
2.测试代码
3.mingw64编译运行程序
4.出现的问题:
出现undefined reference to cv::Mat::Mat()等一系列的undefined reference to XXX
原因是没有正确链接到动态库。或者之前有安装其他版本的opencv
5.解决办法
1.方法一(推荐):自己编译一份OpenCV的源码再使用(如图的opencv_mingw64_build就是自己编的)

2.方法二:
提供了已经有编译好opencv库,使用这个编译好的库的前提是自己的环境和作者的环境一样。所以还是自己编译吧。否则到最后会出现下图这样的问题:

3.最后还要添加环境变量(防止下图报错)

将bin(
E:\opencv_455\opencv_mingw64_build\bin
)目录加到系统的环境变量PATH里,方便程序在运行时能够找到对应的动态库。将bin(
E:\opencv_455\opencv_mingw64_build\bin
)目录下的所有.dll文件复制到C:\Windows\System32目录下, 否则会出现无法定位程序输入点…于动态链接库…上最后程序才能正常运行
5.编译 OpenCV 常见其它错误
- MinGW-w64 的 aviriff.h 文件注释错误
- cap_msmf.cpp capture code 错误【2018年10月13日修改,因编译 OpenCV-4.0.0-alpha 时遇到并解决】
- ‘M_PI’ was not declared in this scope 错误【2018年10月13日修改,因编译 OpenCV-4.0.0-alpha 时遇到并解决】
- ‘posix_memalign’ was not declared in this scope 错误【2018年11月17日修改,因编译 OpenCV-4.0.0-rc 时遇到并解决】
- ‘D3D11_TEXTURE2D_DESC’ was not declared in this scope 错误【2019年4月10日修改,因编译 OpenCV-4.1.0 时遇到并解决】
报错调整参考以下链接:
6.参考链接:
- ‣
- ‣
- 作者:cherryhua
- 链接:https://blog.cherrylord.com/article/post-36
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。