QT6.4.3+Opencv4.7.0配置笔记

CMake设置源文件以及目标文件:

选择MinGW Makefiles,选择Specify native compilers,进入下一步

C:选择gcc路径:E:\software\Qt6.4.3\Qt_6.4.3\Tools\mingw1120_64\bin\gcc.exe

C++:选择g++路径:E:\software\Qt6.4.3\Qt_6.4.3\Tools\mingw1120_64\bin\g++.exe

Fortran:空白,点击Finish

通过GitHub Proxy 代理加速下载以下ffmpeg文件(ffmpeg_version.cmake、opencv_videoio_ffmpeg.dll、opencv_videoio_ffmpeg_64.dll)

将以下三个文件添加到两个文件夹下:

E:\software\opencv_4.7.0\sources\3rdparty\ffmpeg 

E:\software\opencv_4.7.0\opencv_qt_6.4.3\3rdparty\ffmpeg

编译问题1:

解决方法:去掉勾选以下三个值

 编译问题2:

解决方法:查找OPENCV_GENERATE_SETUPVARS ,去掉勾选值

继续...

查找WITH_QT,WITH_OPENGL,完成勾选

Configure,设置以下路径

点击Generate 生成 Makefile

查找CMAKE_MAKE_PROGRAM

配置路径E:\software\Qt6.4.3\Qt_6.4.3\Tools\mingw1120_64\bin\mingw32-make.exe

再次 Configure,没有报错,Generate,done...

 在目标文件夹中,按住shift,同时右键,选择 在此处打开Powershell窗口(s)

进入Windows Powershell ,输入mingw32-make -j 16(16为线程数),开始编译

开始等待,会有各种error......

以下常见问题以及解决方法:

问题1:Makefile:161: recipe for target 'all' failed

方法:采用单线程编译 mingw32-make 以查看详细的错误提示,再根据具体情况解决。

问题2:

[modules\core\CMakeFiles\opencv_core.dir\build.make:401:modules/core/CMakeFiles/opencv_core.dir/src/directx.cpp.obj] Error 1

[CMakeFiles\Makefile2:1995: modules/core/CMakeFiles/opencv_core.dir/all] Error 2

方法:在CMake中取消勾选WITH_OPENCL_D3D11_NV选项,重新Configure-Generate

问题3:

[3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/stubs/io_win32.cc.obj] Error 1    CMakeFiles\Makefile2:710: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all' failed mingw32-make[1]: * [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all] Error 2

方法:在CMake查找勾选ENABLE_CXX11,重新Configure-Generate

问题4:

make:90: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/arena.cc.obj' failed [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/arena.cc.obj] Error 1 CMakeFiles\Makefile2:1727: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all' failed mingw32-make[1]: * [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all] Error 2

方法:在CMake取消勾选BUILD_PROTOBUF和WITH_PROTOBUF,重新Configure-Generate

问题5:

Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj

error: '::hypot' has not been declared using ::hypot;

方法:在CMake中查找,取消勾选BUILD_opencv_python3、BUILD_opencv_python3_bindings_generator,重新Configure-Generate

若不使用opencv_python,则在CMake中取消勾选BUILD_opencv_python、opencv_python等选项

等待编译完成,编译100%完成之后,输入 mingw32-make install 完成安装

安装完成

添加环境变量:

E:\software\opencv_4.7.0\opencv_qt_6.4.3\install\x64\mingw\bin

所有环境变量:

WIN+R打开命令提示符,输入CMD,运行set Path=C,更改当前窗口任务的环境变量

再打开一个终端窗口,输入echo %PATH,查看Path是否更新

测试:

新建项目,在pro中,添加

INCLUDEPATH += E:\software\opencv_4.7.0\opencv_qt_6.4.3\install\include
LIBS += E:\software\opencv_4.7.0\opencv_qt_6.4.3\install\x64\mingw\bin\libopencv_*.dll

源文件mainwindow.cpp中:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->setupUi(this);
    Mat image = imread("K:\\Qt\\qt_opencv\\test\\20230523_1.jpg", 1); //一定使用绝对路径,双反斜
    namedWindow("Test",WINDOW_NORMAL); 
    imshow("Test", image);
    waitKey(100000);
}

MainWindow::~MainWindow()
{
    delete ui;

 测试结果:

约~~

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值