opencv使用CMake和MinGW-w64的编译安装
736 字
4 分钟
opencv使用CMake和MinGW-w64的编译安装
1.安装环境
提前在电脑中安装以下软件或环境
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
进行编译
cd E:/opencv_455/opencv_mingw64_buildmingw32-make -j 8mingw32-make install
#(也可以是[**MinGW-x64**](http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-posix/seh/x64-4.8.1-release-posix-seh-rev5.7z/download)工具修改过后的命令# make -j 8# make install# )4.自己出现的编译 OpenCV错误
调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)
1.程序的CMakeLists.txt文件
cmake_minimum_required(VERSION 3.18)project(test)
# set(OpenCV_DIR "XXX")# xxxx目录包含OpenCVConfig.cmakeset(OpenCV_DIR "E:/opencv_455/opencv_mingw64_build")
# 寻找OpenCV库find_package( OpenCV REQUIRED )
# 添加头文件include_directories( ${OpenCV_INCLUDE_DIRS} )
# 链接OpenCV库add_executable(test test01.cpp)target_link_libraries(test ${OpenCV_LIBS})2.测试代码
#include <iostream>#include <fstream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;
int main(){ Mat images; images = imread("test.jpg",0); cv::Mat grayim; Size dsize = Size(120, 160); Mat shrink; resize(images, shrink, dsize, 0, 0, INTER_AREA); imwrite("after.jpg", shrink); cout<<"处理完成!"<<endl; return 0;}3.mingw64编译运行程序
cmake -G "MinGW Makefiles" .. // 相当于cmake ..mingw32-make // 相当于make4.出现的问题:
出现undefined reference to cv::Mat::Mat()等一系列的undefined reference to XXX
原因是没有正确链接到动态库。或者之前有安装其他版本的opencv
5.解决办法
1.方法一(推荐):自己编译一份OpenCV的源码再使用(如图的opencv_mingw64_build就是自己编的)
2.方法二:
https://github.com/huihut/OpenCV-MinGW-Build
提供了已经有编译好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使用CMake和MinGW-w64的编译安装
https://firefly.cuteleaf.cn/posts/obsidian/opencv使用cmake和mingw-w64的编译安装/ 相关文章 智能推荐
1
boost使用CMake和MinGW-w64的编译安装
开发笔记 1.环境 操作系统: Windows 10 Boost 版本: 1.84.0 GCC 版本: mingw x64 CMake 2. Boost 库编译安装 1. 下载解压 Boost 源码,并解压 官网链接:https://www.boost.org/users/history/
2
Eigen使用CMake和MinGW-w64的编译安装
开发笔记 1.环境 平台: Windows 10 编译器: mingw , gcc/g++ CMake Eigen 版本:3.4.0 2. 编译安装 1.官网下载源码 https://eigen.tuxfamily.org/index.php?title=Main Page 2.打开 cm
3
cmake和opencv的编译安装
开发笔记 1、准备工作 1.1 C/C++编译环境配置 安装gcc和g++ 或者直接安装build essential,安装了该软件包,编译c/c++所需要的软件包也都会被安装。 安装cmake编译工具 cmake包直接安装: 根据实际需要,选择性安装libjpeg dev, libpng
4
FreeType编译与使用
开发笔记 1、linux系统编译安装opencv linux系统中编译安装opencv是开启了freetype的使用,后续则可以直接在C++代码中实现,无需额外编译安装freetype。 2、额外编译安装使用FreeType 注意freetype版本和opencv版本的兼容性 这里编译的是
5
Windows下CMake的命令编译使用
运维部署 1、下载安装Cmake,配置环境变量,检验安装是否正常 2、 下载安装MinGW,配置环境变量,检验安装是否正常 3、具体的编译命令
随机文章 随机推荐