windows 11系统给clion配置opencv(含CMake下载及编译opencv、MinGW下载及编译opencv以及一些遇到的问题)
目录
- 一、CLion 2022.2.1下载与安装
- 二、下载opencv 4.4.0
- 三、下载及配置MinGW-w64GCC-8.1.0
- 1.下载MinGW
- 2.配置环境变量
- 四、下载CMake 3.24.1
- 五、 CMake编译OpenCV 4.4.0
- 六、使用MinGW编译opencv,并配置环境变量
- 1.MinGW编译opencv
- 2.配置环境变量
- 七、在CLion项目中使用opencv
一、CLion 2022.2.1下载与安装
CLion 下载与安装可以说是整个工作中最轻松的了,而且有很多资料。
- CLion 下载地址:https://www.jetbrains.com/clion/download/#section=windows。
- 安装参考博客(下载完即可,先不用配置CMake/MinGW编译调试器,后面会讲):https://blog.csdn.net/qq_44723773/article/details/104698675
二、下载opencv 4.4.0
- opencv下载链接: https://opencv.org/releases/
- 找到相应的版本点击windows下载安装即可
- 下载后的目录如下(第二个是自己新建的空文件夹)
build 文件夹是安装包自带的使用 VC15 编译好的环境, 不过咱们需要使用 mingw 编译器重新编译, 所以重新新建一个 cmake_build 文件夹,文件夹名字自己随便定义都可以。
注意:在opencv这块上我遇到了以下两个坑:
- 1.看一下你下载的opencv\sources\.cache\ffmpeg,里边有三个文件,大概率大小都是0kb,或者没有.cache这个文件,没关系,后面会有解决方案。
第一个“-”前面的一串字母数字是MD5码,每个版本的opencv可能不一样,这里只看后缀是否是这三个文件。
下面三个文件不是0kb是我重新下载相应文件后的结果。
- 2.下载opencv后存放的文件夹名字取正常点,就叫opencv就行。千万别叫:
opencv 4.4.0(opencv空格4.4.0)否则后面MinGW编译opencv时找的文件夹不是opencv 4.4.0而是文件夹 4.4.0(当然会因为找不到此文件夹而报错)。
我也不知道为啥,反正看到没这个文件夹就重新下载了一遍,换了个名字。
三、下载及配置MinGW-w64GCC-8.1.0
1.下载MinGW
- MinGW下载链接:https://sourceforge.net/projects/mingw-w64/files/
选择下载下图中方框中的即可。
下载下来是一个压缩包,解压后有一个mingw64的文件,找个地方放好就行了。
以下是有问题的做法(至少我遇到问题了):
之前遇到过有些博主会推荐下载 上上图 中第一个链接,也就是MinGW-W64 Online Installer下的MingGW-W64-install.exe
说一下这样安装的步骤以及我遇到的问题: - 下载并点击安装程序(相信大家都会)
- 剩下的步骤看图
此处有没有发现,这的配置就是我上面图中(也就是下图)推荐的那个配置呀
其实这个方法就是个需要联网的下载器,各个选项可以选择,你要是确定了哪个版本,就直接在下载页面下载相应的版本就好了,无需下载MinGW-W64 Online Installer下的MingGW-W64-install.exe。这种方法咱们接着向下走。
问题马上来了,点完next后本应该是安装的进度条,结果出现:
The file has been downloaded incorrectly!
所以还是不用这种方法了。
2.配置环境变量
将刚才下载的x86_64-posix-seh解压后的mingw64文件夹中的bin加入环境变量中的path中。
- 步骤:右击:“我的电脑”->属性->搜索“高级系统配置”->高级->环境变量->用户变量中双击“PATH”->新建->bin的地址->确定(别忘记)!
添加完成后看是否生效:
- win+r,输入cmd
- 键入:set PATH=C: (有个冒号!!)
- 关闭cmd,重新打开,键入 echo %PATH%,若有显示mingw64\bin则成功
四、下载CMake 3.24.1
- cmake下载地址:https://cmake.org/download/
- 一直点next,不过下图中选第二个
- 通过:win+r->cmd->键入:cmake -version(cmake和“-”间有空格)。显示如下配置成功。
五、 CMake编译OpenCV 4.4.0
- 1.打开桌面上的cmake
- 2.点击 Browse Source, 将安装好的 OpenCV 文件夹下的 source 文件夹目录添加进来。点击 Browse Build, 将建好的 cmake_build 空文件夹添加进来。
- 点击Configure会弹出选项框,选项如下,则点击next:
- C 选择安装目录:F:\mingw8.1.0\mingw64\bin\gcc.exe
C++选择安装目录:F:\mingw8.1.0\mingw64\bin\g++.exe
(目录根据自己的mingw安装位置,下图是从网上找的,和我的地址不一样)
选择完成后点击 Finish。
- 等待 Configure 完成后, 进行选项的调整, 注意以下几个配置选项:
不勾选 WITH_IPP
不勾选 ENABLE_PRECOMPILED_HEADERS
不勾选 OPENCV_ENABLE_ALLOCATOR_STATS
不勾选 OPENCV_GENERATE SETUPVARS
- 再次点击 Configure,等待加载进度条。
当进度条满了后最后一行会出现:Configuring done。你以为大功告成?先别急,向上翻看一下没有有红色的编译错误的字体。大部分人都不会一帆风顺的。
下面就把我在此阶段遇到的问题汇总一下,如果你有其他错误,不要灰心,相信度娘和csdn。 - 1.1报错:
CMake Warning at cmake/OpenCVGenSetupVars.cmake:54 (message):CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install directory
1.2解决方案:取消勾选 OPENCV_GENERATE_SETUPVARS选项,重新点一下Configure。
1.3参考:http://t.csdn.cn/Ps7kU - 2.1报错:gcc: error: long: No such file or directory
2.2:解决方案:取消勾选OPENCV_ENABLE_ALLOCATOR_STATS选项,重新点一下Configure。 - 3.1报错:(原因就是在上文在安装opencv时说的下载的3个文件是0kb)
FFMPEG: Download: opencv_videoio_ffmpeg.dll
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
FFMPEG: Download failed: 35;“SSL connect error”
For details please refer to the download log file:
D:/Packages/cpp/opencv/MinGW-build/CMakeDownloadLog.txt
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
modules/videoio/cmake/init.cmake:7 (include)
modules/videoio/cmake/init.cmake:18 (add_backend)
cmake/OpenCVModule.cmake:298 (include)
cmake/OpenCVModule.cmake:361 (_add_modules_1)
modules/CMakeLists.txt:7 (ocv_glob_modules)
FFMPEG: Download: opencv_videoio_ffmpeg_64.dll
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
FFMPEG: Download failed: 28;“Timeout was reached”
For details please refer to the download log file:
D:/Packages/cpp/opencv/MinGW-build/CMakeDownloadLog.txt
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
modules/videoio/cmake/init.cmake:7 (include)
modules/videoio/cmake/init.cmake:18 (add_backend)
cmake/OpenCVModule.cmake:298 (include)
cmake/OpenCVModule.cmake:361 (_add_modules_1)
modules/CMakeLists.txt:7 (ocv_glob_modules)
FFMPEG: Download: ffmpeg_version.cmake
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
FFMPEG: Download failed: 28;“Timeout was reached”
For details please refer to the download log file:
D:/Packages/cpp/opencv/MinGW-build/CMakeDownloadLog.txt
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
modules/videoio/cmake/init.cmake:7 (include)
modules/videoio/cmake/init.cmake:18 (add_backend)
cmake/OpenCVModule.cmake:298 (include)
cmake/OpenCVModule.cmake:361 (_add_modules_1)
modules/CMakeLists.txt:7 (ocv_glob_modules)
3.2:解决方法:
分析:
根据错误提示打开D:/opencv/mingw_build/CMakeDownloadLog.txt从中可发现出错的文件夹是D:/opencv/sources/.cache。在D:/opencv/sources/.cache中,凡是文件大小是0KB,都是无法下载并报错的。
解决方法:
step1:打开https://github.com/opencv/opencv_3rdparty,找到正确版本的ffmpeg并下载。
补充:关于查看ffmpeg版本:/opencv/sources/3rdparty/ffmpeg/ffmpeg.cmake
我的opencv4.4.0是ffmpeg/master20200609这个版本
点开相应的版本,下载缺失的文件。
大家也可以在csdn上搜相应版本的ffmpeg-master文件进行下载。
比如:我直接找到了opencv_3rdparty-ffmpeg-master_20200609.zip
我把我下载好的opencv4.4.0对应的ffmpeg-master_20200609放到网盘了,如用请自取:
链接:https://pan.baidu.com/s/1-ztq9UIUENZdVwDJ4aNVlA
提取码:jb6k
注意:原始opencv\sources.cache\ffmpeg中这三个0kb的文件命名格式是MD5码-文件名。而我们下载文件名字是没有MD5码的,需要加上。
怎么知道文件的MD5码呢?
- (1)法1:相同版本的ffmpeg这三个文件的MD5码是固定的,也就是说这三个空文件的名字完全可以当做 下载的三个文件的名字。
- (2)法2:如果法1你不放心,可以验证一下:Win+r->cmd->依次键入:
cd /d F:\opencv\sources\.cache\ffmpeg
certutil -hashfile ffmpeg_version.cmake(某一文件名) MD5
我键入的代码中的文件名字是我改完了的,大家可以试一下新下载的文件的MD5码是不是和0kb的对应文件的MD5码相同。
F:\opencv\sources\.cache\ffmpeg>certutil -hashfile ad57c038ba34b868277ccbe6dd0f9602-ffmpeg_version.cmake MD5
对3个0kb文件执行完以上操作后,回到CMake点一下Configure,红色报错就消失了。
- 在以上所有问题解决后,再点击一下Generate就好了
3.3:参考:
(1)https://zhuanlan.zhihu.com/p/363803758
(2)https://blog.csdn.net/JR024778/article/details/119572602
(3)https://blog.csdn.net/xinxin_Tian/article/details/105717254
六、使用MinGW编译opencv,并配置环境变量
1.MinGW编译opencv
进行完成 Cmake 编译 OpenCV 后,需要将生成的 cmake_bulid 文件夹编译生成工程。
- step1:Win+r->cmd->键入:cd /d F:\opencv\mingw_build。进入上一步cmake生成的 cmake_bulid目录下。
- step2:键入:mingw32-make –j 8 ,这个过程编译时间有点久,机器不同时间也不一样。这里-j 8 意思是开启8 核运行,这个值取决你电脑的 CPU 物理核心数。
之后就会从0%到100%的编译。当然也会遇到问题。我遇到了两个:
(1)报错1.1:显示错误:find_host_package(PythonInterp 2.7)’ found wrong Python version,具体提示如下:
Found PythonInterp: C:/Users/LiuBing/AppData/Local/Programs/Python/Python38/python.exe (found suitable version “3.8.2”, minimum required is “2.7”)
CMake Warning at cmake/OpenCVDetectPython.cmake:81 (message):
CMake’s ‘find_host_package(PythonInterp 2.7)’ found wrong Python version:
PYTHON_EXECUTABLE=C:/Users/LiuBing/AppData/Local/Programs/Python/Python38/python.exe
PYTHON_VERSION_STRING=3.8.2
Consider providing the ‘PYTHON2_EXECUTABLE’ variable via CMake command line
or environment variables
Call Stack (most recent call first):
cmake/OpenCVDetectPython.cmake:271 (find_python)
CMakeLists.txt:598 (include)
1.2解决方案:计算机右键->属性->高级系统设置->高级->环境变量->系统变量->新建
按下图操作后点“确定”:(需要知道你python安在哪里了,并且python.exe是手打上去的)
1.3参考:https://blog.csdn.net/liubing8609/article/details/105462166
(2):4.4.0\build\include:No such file or directory
解决方案2.2:他提示的是4.4.0,而我当时下载opencv时文件夹命名是opencv 4.4.0
可能空格识别不出,我又重新下载改了名字,以上所有步骤再做一遍后没有报错了。
历经千辛万苦终于100%
- step3:键入:mingw32-make install 此命令执行较快,目的是将编译生成的文件整合到F:/opencv/mingw_build/install目录中
2.配置环境变量
新建三个用户变量:
变量名:LD_LIBRARY_PATH
变量值: F:\opencv_lib\mingw_build\install\x64\mingw\lib
变量名:OPENCV_INCLUDE
变量值:F:\opencv_lib\mingw_build\install\include
变量名:OPENCV_LIB
变量值:F:\opencv_lib\build_2\install\x64\mingw\lib
注意:用户环境的正确动态库的路径需要根据自己的实际情况进行更改路径,上面的路径是不适用于每一个人的。
另外在用户变量 path 下新增两条路径:
F:\opencv_lib\mingw_build\install\x64\mingw\bin
F:\opencv_lib\mingw_build\install\x64\mingw\lib
至此,用户环境变量设置完成。
七、在CLion项目中使用opencv
- 新建1个项目,编辑CMakeLists.txt,如下所示:
cmake_minimum_required(VERSION 3.23)//版本号可通过 cmake -version查看
project(clion_opencv)//项目名set(CMAKE_CXX_STANDARD 14)add_executable(clion_opencv main.cpp)
set(OpenCV_DIR F:/opencv/cmake_build/install)//以上是自带的,以下得添加
find_package(OpenCV REQUIRED)
target_link_libraries(clion_opencv ${OpenCV_LIBS})
- 编辑main.cpp,如下:
#include <iostream>
#include <cstring>
#include <opencv2/highgui/highgui.hpp>using namespace std;
using namespace cv;int main() {auto path = R"(F:\lena.jpg)";//图片地址Mat img = imread(path);if (img.empty()) {cout << "Error" << endl;return -1;}namedWindow("pic", WINDOW_AUTOSIZE);imshow("pic", img);waitKey();return 0;
}
lena女神出现了!!!!
第七部分参考博客:
https://blog.csdn.net/qq_44723773/article/details/104698675
https://blog.csdn.net/JR024778/article/details/119572602
windows 11系统给clion配置opencv(含CMake下载及编译opencv、MinGW下载及编译opencv以及一些遇到的问题)相关推荐
- Windows 11系统映像恢复到新硬盘的3种方式
备份对于保护您的系统和数据非常重要 Windows 11在国外正式发布后,许多用户可能想要将Windows 10升级到Windows 11 体验它的新功能.如果您喜欢新的操作系统并希望将来可以更安全的 ...
- Windows 11 正式版最低配置要求来了,你的电脑支持吗?
整理 | 孙胜 出品 | CSDN(ID:CSDNnews) 10月5日,微软开始正式推送Windows 11. "让用户与之所爱,更近一步." 这是微软日前官宣Windows 1 ...
- 在Vmware上使用Windows 10系统ISO升级到Windows 11系统
在Vmware上使用Windows 10系统安装包升级Windows 11系统 一. 下载Windows 10 iso 镜像 二. 创建新的虚拟机 三. 为虚拟机添加"可信平台模块" ...
- 解决新装 Windows 11 系统触摸板多指操作无法使用的问题
问题描述 新装 Windows 11 系统后发现触摸板多指操作无法使用,下载了很多 ELAN 的驱动程序安装了也还是没用. 解决方案 打开设置 -> Windows 更新 -> 高级选项 ...
- Windows 11 系统镜像 泄露修复版(修复PE/实体电脑可装)
微软说的Windows10是最后一个版本,然而Windows11泄露镜像已经来了,大圆角设计,支持Windows X上的新特性.科技以换壳为本. 版本信息 版本名称:Windows 11 消费者版 ( ...
- 如何在 Windows 11 22H2上启用配置及使用实时字幕?
如何在 Windows 11 22H2上启用实时字幕?在Windows 11的"实时字幕"功能是从22H2 版本开始提供的一项功能,允许任何人通过查看语音内容的字幕来更好地理解音 ...
- Windows 11 系统下载,正式版尚未发布
下载链接方式: 关注"郑州行疆户外"程序员自己的订阅号,回复"win11",获取win11系统下载链接 一.发布 今年5月的Build大会,微软便正式明确新一代 ...
- OCR - 微软windows 11系统自带的Windows OCR功能初体验
一.Power Automate简述 最近再了解一些ocr的相关信息,从一些网站上上看到微软的免费系统实用工具套件中包含ocr识别/pdf文本提取等. 什么是Power Automate? Windo ...
- 【系统】【winget】从零开始配置一个开发用的 Windows 11 系统的电脑 - winget 代码终端安装软件
文章目录 如何将一台全新电脑配置为程序员开发使用 一.系统(仅供参考,可不看) 1. 使用 Ventoy 制作系统U盘 2. 下载微PE镜像到U盘里 3. 下载 Win11 官方系统镜像到U盘里 4. ...
最新文章
- linux 进程 内存 换入换出,linux - 在从bash进程替换完成输入后,如何继续发送到stdin? - 堆栈内存溢出...
- c语言程序能够在不同的操作系统下运行,这说明c语言具有很好的,程序设计(C)作业一(有答案)...
- 【LeetCode】2. Add Two Numbers
- 推荐一些能提高生产力的 Python 库
- php类的实例化和调用,PHP:如何使用另一个类中的参数实例化一个类
- MySQL数据库序列的作用_MySQL数据库:序列使用
- Notepad++中的UTF-8无BOM格式编码
- mysql二分法查找亿行_算法——二分法查找(binarySearch)
- extjs TabPanel 监听激活事件
- python学习(六)----文件和异常
- c++ iostream
- aida64使用教程
- MATLAB识别实验,基于MATLAB的图像识别
- 猿创征文|【实用工具tcping】ping tcping的区别,使用命令,超全超详细使用手册(建议收藏)
- spss软件简介与数据操作
- 天涯明月刀最新服务器,天涯明月刀手游手游开服表_天涯明月刀手游手游开服时间表_新服新区预告_第一手游网...
- 优惠劵秒杀优化-分布式锁
- 古诺双寡头模型MATLAB求解(博弈论)
- 从刘强东到刘立荣:一号人物失格
- 一个游戏程序员必须要读的书
热门文章
- IMX8MP录像功能测试
- leetcode714.买卖股票的最佳时机含手续费(中等)
- 机械臂正运动学-DH参数-Python快速实现
- RxJava入门指南
- sqlserver 人名_mssql sqlserver 使用sql脚本生成随机中文名字的方法分享
- 2022-2028年中国300毫米自动探针台套件市场现状研究分析与发展前景预测报告
- tesseract 训练入门--记一次50张简单验证码的训练过程
- Aspose.PDF for Java系列5-转化PDF文档为Word
- Deepin上安装eclipse2021-03及其CDT插件
- Ansys Speos | 基于 Workbench 和 Speos 的准直全反射透镜优化设计案例