【问题标题】:OpenCV simple code compiles successfully but crashes on runtimeOpenCV 简单代码编译成功但在运行时崩溃
【发布时间】:2016-04-05 15:48:07
【问题描述】:

我的目标是在 Qt 5.5.1 中运行一个简单的 OpenCV 贡献(额外)模块。

步骤:

1) 创建了一个 Qt 应用程序;

2) 将main.cpp 文件更改为:

#include <QApplication>
#include <opencv2/core/utility.hpp>
#include <opencv2/tracking.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <cstring>
#include <QDebug>

using namespace std;
using namespace cv;

int main(int argc, char*argv[])
{
    qDebug() <<"start!" << endl;

    QApplication a(argc, argv);

    string trackingAlg = "KCF";
    MultiTracker trackers(trackingAlg);

    qDebug() <<"success!" << endl;

    return a.exec();
}

这是我的.pro 文件:

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = tracker4

CONFIG += c++11

TEMPLATE = app
SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/opencv

LIBS += `pkg-config opencv --libs`
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_videoio -lopencv_tracking

程序编译成功,但是在运行时,它甚至没有运行main()函数就崩溃了。当我在 Code::Blocks 中运行它时没有收到这样的错误,但在 Qt 中我仍然有这个问题。

我正在使用 Qt 5.5.1 和 Ubuntu 14.04。

任何人都可以在他/她的机器上生成这个“seg fault”错误吗?

【问题讨论】:

  • 我刚刚注意到包含imshow("windowname", img) 的非常简单代码的Qt 控制台应用程序也崩溃了。请注意,其他 opencv 功能(如 Mat 类型、imread、...)运行良好。

标签: c++ qt crash segmentation-fault opencv3.0


【解决方案1】:

对于 QT 5,使用 QT=OFF 构建 OpenCV。 对于 QT 4,使用 QT=ON 构建 OpenCV。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多