【问题标题】:opencv3.1.0 programming In Qt5.5.1: error: undefined reference to `__atomic_fetch_add_4'opencv3.1.0 在 Qt5.5.1 中编程:错误:未定义对 `__atomic_fetch_add_4' 的引用
【发布时间】:2016-10-20 12:18:15
【问题描述】:

大家好,我在ubuntu14.04用Qt5.5.1编译一个opencv小程序,但是有些麻烦。 首先我做了一个Qt Widgets Application,main.cpp代码如下:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
int main()
{
    Mat srcImage = imread("lena.jpg");
    imshow("orig", srcImage);
    waitKey(0);
    return 0;
}

show.pro 代码是:

#-------------------------------------------------
#
# Project created by QtCreator 2016-10-20T19:22:57
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = show
TEMPLATE = app


SOURCES += main.cpp\
    mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

CONFIG += link_pkgconfig
PKGCONFIG += opencv

当我构建项目时,出现以下错误:

/home/lmk/keke/build-show-Desktop_Qt_5_5_1_GCC_32bit-Debug/main.o:-1: In function `cv::Mat::release()':
/usr/local/opencv-3.1.0/include/opencv/opencv2/core/mat.inl.hpp:681: error: undefined reference to `__atomic_fetch_add_4'
:-1: error: collect2: error: ld returned 1 exit status

你能帮帮我吗?

【问题讨论】:

  • 您使用的是使用 GCC 32 位编译的 OpenCV 吗?你在调试中使用调试库,在发布中发布库吗?
  • 是的,我用GCC 32位编译,路径是/home/newdisk/Qt5.5.1/5.5/gcc,关于你的第二个问题,我想就像你说的那样。看来我只是使用调试模型。@Miki
  • 也许我有一个解决方案:在我的show.pro 文件中添加一行:LIBS += /usr/lib/i386-linux-gnu/libatomic.so.1 我试过了,没有错误。@Miki

标签: c++ qt opencv ubuntu-14.04


【解决方案1】:

也许我有一个解决方案:在我的 show.pro 文件中添加一行,如下所示

LIBS += /usr/lib/i386-linux-gnu/libatomic.so.1 

我试过了,没有错误。@Miki

【讨论】:

    猜你喜欢
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多