type
Post
date
Aug 8, 2024
status
Published
slug
post-36
summary
Windows环境下opencv的编译安装
tags
windows
工具
C++
category
技术分享
password
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.参考链接:
调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)_undefined reference to `cv::mat::~mat()-CSDN博客
调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)_undefined reference to `cv::mat::~mat()-CSDN博客
文章浏览阅读1w次,点赞3次,收藏21次。调用OpenCV库出现:undefined reference to "XXXX"错误的解决办法_undefined reference to `cv::mat::~mat()
HuiHutOpenCV使用CMake和MinGW-w64的编译安装
OpenCV使用CMake和MinGW-w64的编译安装
前言之前写过的一篇博文:OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行 是使用 32 位的 MinGW 在 Windows 下编译 OpenCV 生成 32 位的 dll。 而这篇博文是使用 64 位的 MinGW 编译 OpenCV 生成 64 位的 dll。 因为博主没有 64 位 qmake,所以没勾选 WITH_QT 编译好的 OpenCV(MinGW 版):Githu
- 作者:NotionNext
- 链接:https://tangly1024.com/article/post-36
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







