[英]Linking Error Opencv Qt '_ZN2cv6String10deallocateEv
我正在尝试使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 + = core 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。
谢谢,
拆除缺少的符号:
$ c++filt -n _ZN2cv6String10deallocateEv
cv::String::deallocate()
您似乎正在使用opencv2和opencv3混合对象或库。 我将检查您的系统,并确保仅安装了一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.