【问题标题】:Linking Error Opencv Qt '_ZN2cv6String10deallocateEv链接错误 Opencv Qt '_ZN2cv6String10deallocateEv
【发布时间】:2018-04-16 19:21:17
【问题描述】:

我正在尝试使 qt 程序与 opencv 一起工作但没有成功。 Qt,单独工作。并且 opencv 单独工作(在 Eclipse 中)。

这是来自 mainwindow.cpp 文件的非常简单的 C 代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/opencv.hpp>

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

   cv::Mat image = cv::imread("my_image.png");
   cv::imshow("Display", image);

}

MainWindow::~MainWindow()
{
   delete ui;
}

现在我的 qmake 文件可能有问题,因为链接: QT += 核心 gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = test
TEMPLATE = app

INCLUDEPATH += /usr/local/include/opencv

SOURCES += main.cpp\
           mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

LIBS += -L/usr/local/lib \
        -lopencv_core \
        -lopencv_highgui \
        -lopencv_imgcodecs

最后是最坏(或最好)的,我的可怕错误:

warning: libopencv_core.so.3.3, needed by /usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_core.so.2.4

error: error adding symbols: DSO missing from command line /usr/local/lib/libopencv_core.so.3.3:
error: collect2: error: ld returned 1 exit status

我真的希望有人会阅读我的信息并提供解决方案。也许最好的应该是卸载并重新安装opencv或qt,我不知道。

谢谢,

【问题讨论】:

  • 忘记添加最重要的错误:mainwindow.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'

标签: c++ qt opencv


【解决方案1】:

去除缺失的符号:

$ c++filt -n _ZN2cv6String10deallocateEv
cv::String::deallocate()

您似乎正在使用 opencv2 和 opencv3 混合对象或库。我会检查你的系统并确保只安装了一个。

【讨论】:

  • 好的,谢谢,我会尝试这样做。但我真的不知道这两个版本之间的区别。安装opencv 3更好吗?
猜你喜欢
  • 1970-01-01
  • 2013-06-03
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 2020-12-10
相关资源
最近更新 更多