gpt4 book ai didi

c++ - 程序在 QT opencv 中意外完成

转载 作者:行者123 更新时间:2023-12-03 17:09:20 25 4
gpt4 key购买 nike

我知道这已经发布了很多次,但我无法从以前的帖子中找到解决方案。我从维基 Qt 中学习了如何在 Windows 上设置 Qt 和 openCV 的教程。
我的 .pro文件和 mainwindows.cpp如下所示。我想按照示例打开图像。这里有什么问题?检查了 opencv 版本,它与包含的库相同。 PATH也是对的。
.cpp 文件

#include "ui_mainwindow.h"

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

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

cv::Mat image = cv::imread("C://1.jpg", 1);
cv::namedWindow("My Image");
cv::imshow("My Image", image);
}

MainWindow::~MainWindow()
{
delete ui;
}
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = opencvtest
TEMPLATE = app

DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h
FORMS += mainwindow.ui

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv-build\bin\libopencv_core451.dll
LIBS += C:\opencv-build\bin\libopencv_highgui451.dll
LIBS += C:\opencv-build\bin\libopencv_imgcodecs451.dll
LIBS += C:\opencv-build\bin\libopencv_imgproc451.dll
LIBS += C:\opencv-build\bin\libopencv_features2d451.dll
LIBS += C:\opencv-build\bin\libopencv_calib3d451.dll
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();

private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

最佳答案

当程序在 Qt Creator 下崩溃时,并且您有额外的库,很可能的原因是运行时缺少额外的库 PATH .
在这种情况下,您需要添加 C:\opencv-build\bin到路径。至少有 3 种方法可以解决这个问题。

  • 编辑系统环境,让相关目录一直在系统中PATH .您需要重新启动 Qt Creator 才能使此更改生效。这不是推荐的方式,除非你真的想要这些东西也用于其他目的。
  • 您可以在 Qt Creator 项目 View 下编辑项目的 Build 环境。每种构建类型都有单独的配置,因此您可能需要分别对它们执行此操作,无论好坏。这很好,因为这样你就可以为不同的构建使用不同的目录(例如 debug 与 relase、MSVC 与 MinGW 构建)。这很糟糕,因为它会带来额外的麻烦,并且更容易出错。
  • 您可以在 Qt Creator 项目 View 中将其添加到运行环境中。那么对于所有构建类型都是相同的。

  • 在这种情况下,3 可能是要走的路。

    令人讨厌的是,Qt Creator 没有显示任何关于缺少哪个 DLL 的信息,它只是说程序崩溃了。这可以通过在 Windows 开始菜单中为正确的工具链输入“Qt 命令提示符”来解决(搜索 Qt,您应该会找到它)。然后转到构建的 .exe 目录并运行 .exe。您现在应该会看到一个错误对话框,Windows 会在其中告诉您未能找到哪个 DLL。然后您可以查看该 DLL 的位置并将其添加到路径中并重试,直到程序启动。使用此方法知道目录后,您可以将它们添加到 Qt Creator,如上所述。

    关于c++ - 程序在 QT opencv 中意外完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66660073/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com