Windows下环境配置Cmake、MinGW、OpenCV

这篇具有很好参考价值的文章主要介绍了Windows下环境配置Cmake、MinGW、OpenCV。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装Cmake
1.选择自己需要下载的版本,下载地址
如cmake-3.26.5-windows-x86_64.msi
2.点击安装,过程中选择为所有用户添加CMAKE PATH
3.安装完成后,编辑账户环境变量
完成后打开cmd终端输入 cmake --version
会输出cmake版本信息,如下图,表示Cmake配置成功
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

二、安装MinGW
1.点此下载MinGW在线安装器,选择Assets下的mingwInstaller.exe
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

2.安装过程中:

选择需要的gcc版本(如12.2);
根据操作系统位数选择软件架构(如win10 64位);
选择线程模型,我开始选了win32,但是发现std::thread和std::mutex不能使用,查了相关介绍是如果运行在其他系统(如 Linux,Unix,Mac OS等)就选posix,这里为了能正常使用线程和锁,线程模型选择了posix;
选择构建版本有rev0、rev1、rev2,这里使用的默认选择rev2;
选择运行时库类型(查阅资料介绍urct是Microsoft为了更好地支持Windows 10和Windows Store应用程序而开发的新一代C运行时库,相比于msvcrt,urct提供了更多的功能和更好的兼容性。但对于旧的32位Windows系统,MSVCRT仍然是必需的),这里选择的urct;
选择安装位置(如“D:\MinGW”);进行安装。

参考文章地址

3.安装完成后添加系统环境变量,如下所示
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

4.打开cmd命令行

$ g++ --version             // 输出以下内容                                                                              
g++ (x86_64-win32-seh-rev2, Built by MinGW-W64 project) 12.2.0                                                          
Copyright (C) 2022 Free Software Foundation, Inc.                                                                       
This is free software; see the source for copying conditions.  There is NO           
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

$ gcc --version                                                                                        
 gcc (x86_64-win32-seh-rev2, Built by MinGW-W64 project) 12.2.0                                                         
 Copyright (C) 2022 Free Software Foundation, Inc.                                                                       
 This is free software; see the source for copying conditions.  There is NO                                             
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

三、安装OpenCV
1、OpenCv下载地址
看到许多方法选择下载Windows版本的安装包,开始下载的是4.8.0版本,该安装包安装过程看起来就是选择指定位置解压,大多数介绍方法使用的是安装后的build文件夹下的库文件,但个人使用过程中编译时总是提示未定义的引用,而且CMakeLists中也已经链接了opencv_world480d.lib

error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能


然后就尝试使用CMake自行编译OpenCV,源码路径如下,打开前面安装的CMake

注意这里使用OpenCV4.8.0的编译有报错,最后选择下载的4.5.5 Sources源码包

error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能
源码位置及自选后面编译使用的目录,选择Configure,项目生成器下拉选择MinGW Makefiles,及使用默认的本机编译器
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能
点击Finish,等待完成后结果如下
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

在Search中检索如下配置
(1)CMAKE_BUILD_TYPE ,确认Value为Release
(2)BUILD_opencv_world,将其勾选,仅生成一个库连接
(3)BUILD_TESTS,取消勾选以减少编译错误
(4)OPENCV_GENERATE_PKGCONFIG,勾选使得pkgconfig自动传递库路径给g++进行编译
(5)BUILD_opencv_python ,这里没有使用也没安装python,将两个选项都取消勾选
(6)BUILD_JAVA,相关的两项也取消勾选

再次点击Configure,完成后点击Generate。然后打开上面选择生成二进制文件的位置(D:/OpenCV4.8/build_cmake),在文件夹内shift+鼠标右键选择打开PowerShell

$ mingw32-make -j8          //j后参数为cpu内核数量
// 编译完成后进行安装
$  mingw32-make install
在使用4.8版本的Windows包下的sources源码编译时会报一些MinGW相关错误以及
D:\OpenCV4.8\opencv\sources\modules\videoio\src\cap_obsensor\obsensor_stream_channel_msmf.hpp:106:27: error: 
could not convert template argument 'cv::obsensor::ComPtr<IMFSourceReader>::__T_IID_getter' from 'const IID& (cv::obsensor::ComPtr<IMFSourceReader>::)()' {aka 'const GUID& (cv::obsensor::ComPtr<IMFSourceReader>::)()'} to 'const IID& (*)()' {aka 'const GUID& (*)()'} 

不确定是不是MinGW和OpenCV版本之间的问题导致的,
然后就下载了OpenCV4.5.5版本的Sources源码包进行编译(未尝试编译4.8.0版本的源码包,不确定会不会报错)

error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

按照前面配置,能够编译成功

环境变量添加OpenCVConfig.cmake位置及动态库位置,如下
error: could not convert template argument 'cv::obsensor::comptr<imfmediabuf,windows,opencv,人工智能

1、只添加 D:\OpenCV4.5\build\install  路径
CMakeLists中find_package(OpenCV REQUIRED)  
能够找到OpenCVConfig.cmake文件,然后在OpenCVConfig.cmake文件中会指定opencv的库路径和头文件路径,
从而编译的时候也就找到了相应的头文件和库文件
这样能够编译通过,但在运行的时候会找不到动态库,就什么也不会输出。
编译过程还会输出以下信息,就是提示要添加动态库位置
You might need to add D:/OpenCV4.5/build/install/x64/mingw/bin to your PATH to be able to run your applications.

2、只添加 D:\OpenCV4.5\build\install\x64\mingw\bin 路径
find_package(OpenCV REQUIRED)
会提示如下信息,找不到OpenCVConfig.cmake
Could not find a package configuration file provided by "OpenCV" with any
of the following names:

  OpenCVConfig.cmake
  opencv-config.cmake

Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"

在find_package(OpenCV REQUIRED)前添加路径也可以,但没有在环境变量里添加方便
set(OpenCV_DIR D:/OpenCV4.5/build/install)
find_package(OpenCV REQUIRED)

CMakeLists.txt 内容如下

cmake_minimum_required(VERSION 3.2.0)
project(opencvtest)

find_package(OpenCV REQUIRED)

add_executable(${PROJECT_NAME} main.cpp)

message("===========${OpenCV_INCLUDE_DIRS}")
message("========${OpenCV_LIBS}")

target_include_directories(${PROJECT_NAME} PRIVATE ${OpenCV_INCLUDE_DIRS})

target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

测试案例文章来源地址https://www.toymoban.com/news/detail-793341.html

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
 
int main() {

  auto img = imread("E:/test.jpg",0); // 1:RGB、0:Gray
  imshow("test", img);
  waitKey(2000); // ms
  return 0;
}

到了这里,关于Windows下环境配置Cmake、MinGW、OpenCV的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [QT]+[Cmake]+[openCV]配置环境报错:mingw32-make: *** [Makefile:165: all] Error 2等问题的解决办法

    当前作者各软件的版本:QT5.14.2 + CMAKE 3.29.0 +openCV 4.5.4 Qt配置OpenCV教程,亲测已试过(详细版)_qt opencv-CSDN博客 配置的时候主要参考了以上文章 出现的第一个问题是在cmake configure的时候卡在 FFMPEG: Downloading ffmpeg_version.cmake from https://raw.githubusercontent.com/opencv/opencv_3rdparty/7dd0d4

    2024年04月26日
    浏览(45)
  • use vscode mingw cmake on windows

    记住mingw去官网下面的MingW-W64-builds, 下这个版本 x86_64-13.1.0-release-posix-seh-ucrt-rt_v11-rev1.7z posix很重要, win32版本没线程支持,用到会报错 可以测试下是否能正常运行 task.json 安好mingw, cmake 对于opencv, 要么自己用Mingw编译, 要么下载现存的, 我这里下的现成的https://github.com/huihut/OpenC

    2024年02月09日
    浏览(42)
  • win下使用MinGW-w64+cmake搭建c++开发环境

    关于MinGW与MSVC MSVC: 即Microsoft Visual C++ Compiler,即微软自己的编译器 我们下载Windows下的OpenCV时,会带两个文件夹VC14,VC15(分别与Visual Studio的版本有对应关系),这两个文件夹下的库可以直接运行不需要编译 将VS作为Qt的开发环境也是使用这个编译器的缘故 MinGW: 我们都知道

    2024年02月11日
    浏览(40)
  • python中出现could not convert string to float:的问题

    GREENBIRD的个人絮絮念 可能情况 列表中并非纯数字,混杂着字母,当你定义一个np.zeros用于存储这个列表时报错 改成以下解决问题 2.读取文本数据中出现回车换行,导致出现[\\\' \\\']行,存入np.zeros所定义的矩阵报错 listFromLine[0:4]输出如下,因为有空格的缘故,导致数组returnMat中的

    2024年02月11日
    浏览(45)
  • Visual Studio 2022使用CMake+MinGW+Clang+LLDB作为开发环境

    笔者前面写了两篇关于Visual Studio 2022使用MinGW的博文:《Visual Studio 2022使用MinGW来编译调试C/C++程序》、《Visual Studio 2022 CMake+MinGW+GDB 调试目标程序》,这两篇博文都是介绍的是GCC+GDB的编译与调试,本文笔者介绍的则是Clang+LLDB的编译与调试。读完本文,读者可以在GCC、Clang与

    2024年02月06日
    浏览(69)
  • 【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

    除了之前的使用 VSCode 插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置 tasks.json 文件 三、编译工程 1、测试工程结

    2024年02月03日
    浏览(50)
  • 机器学习时出现 could not convert string to float:‘xxx‘解决方法

    先放结论:数据未进行One hot code 解决方法:使用这个函数pd.get_dummies()对数据进行处理 案例:  因为:    因为类型不能转换为float等数字类型,不是数字直接进行机器学习是不行的,同理直接进行归一化、标准化同样不行。报错相同。  加入函数 不报错。 看看One_hot_encode化

    2024年02月11日
    浏览(38)
  • W11下CMake MinGW配置OpenCV和Qt

    💂 个人主页: 风间琉璃 🤟 版权:  本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、 点赞、 收藏(一键三连) 和 订阅专栏 哦 前几天将cuda版本的opencv给编译成功了,当时用的VS的MSVC,然后发现编译后的库文件不能给Qt调用,应

    2024年02月09日
    浏览(37)
  • 【Python】成功解决ValueError: could not convert string to float: ‘ ignoring input‘

    【Python】成功解决ValueError: could not convert string to float: ’ ignoring input’ 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更

    2024年04月15日
    浏览(59)
  • python string转float报ValueError: could not convert string to float

    python中,可以使用内置的float()函数将字符串string对象作为形参进行类型的转换,并以浮点数的类型值返回,并不修改原字符串string对象。语法如下: float( strObj ) 使用float()函数来转换字符串为浮点数是,python抛出ValueError,并提示,could not convert string to float,意思是无法将参

    2024年02月11日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包