【问题标题】:How to link QT and OpenCV in Linux如何在 Linux 中链接 QT 和 OpenCV
【发布时间】:2014-03-26 15:31:10
【问题描述】:

我正在尝试将 QT 与 OpenCV 库链接,但我不能。 OpenCV 有效,Qt 有效,但我不能同时使用两者。

我在 Qt 创建器中添加了一个构建步骤,这种工作,我的意思是,我写了 cv:: 并自动显示了一个包含所有 OpenCV 方法的列表,但是当我编译时,我有大约 20 个错误,使用 OpenCV 方法。

但是,如果我在终端中编译相同的代码,没有 Qt,一切都很好。

任何人都知道如何正确地链接 OpenCV 和 Qt? 请帮忙:(

Qt 版本:5.2.1 Qt Creator 版本:3.0.1 OpenCV 版本:2.4.8

PD:请记住,我使用的是 Linux,有数千个关于此的教程,但在 windows 中:/

PD2:对不起我的英语。

编辑:这是我的错误示​​例,所有 OpenCV 方法都会发生这种情况,例如 imread 和 waitKey

错误:未定义引用 `cv::getRotationMatrix2D(cv​​::Point_, double, double)'

【问题讨论】:

  • 你为什么不把你的错误贴在这里,让我们看看问题是什么?
  • 你是如何链接 OpenCV 库的?您的 .pro 文件中是否有部分可以链接到库中:LIBS += -lopencv_core248 -lopencv_highgui248
  • 其实没有,我只是在项目/构建步骤中添加一个路径。它的 usr/local/include。我不编辑文件。需要修改哪个文件?
  • 您将拥有一个扩展名为 .pro 的项目文件,可在“编辑”视图中访问该文件。您需要在其中添加一个 LIBS 行来告诉它您要包含哪些库。

标签: c++ linux qt opencv linker


【解决方案1】:

在您的 QtCreators 编辑视图中,您需要添加指向库文件的链接,在我的设置中,我的 .pro 文件中有此链接:

CONFIG += use_webcam_opencv

...

use_webcam_opencv {
    message("Using OpenCV Webcam")
    LIBS += -lopencv_core247 -lopencv_highgui247
    HEADERS +=  widgets/camerawidget.h \
                widgets/camerawindow.h
    SOURCES +=  widgets/camerawidget.cpp \
                widgets/camerawindow.cpp
}

HEADERSSOURCES 当然是我自己的,因为我只有在启用 OpenCV 时才会编译它们。

【讨论】:

  • 谢谢,但这对我来说有点奇怪,我知道如何使用opencv,但我不知道Qt,顺便说一句,谢谢:-D
【解决方案2】:

您是否使用 opencv 配置/安装了 pkg-config? 您只需输入 'pkg-config pkg-config opencv --libs 即可进行检查。如果你得到任何输出,你很好。

然后,在 QT 中,只需编辑 .pro 项目设置文件并添加以下行(我不得不放图像,因为我不知道如何将这些引号放在答案中): -

http://imgur.com/DtQ0Zjr

.pro 文件示例:http://pastebin.com/KDYqW5Wj

应该工作

【讨论】:

  • 好的,谢谢,终于可以了,我添加了“LIBS += pkg-config opencv --libs”行,现在编译:)。但是......它在编译过程中崩溃,错误消息是关于 *.so 文件的。顺便说一句,谢谢:)
  • 你是编译 OpenCV(不是你的项目)还是从 repo 下载的?
  • 我从官网上下载了opencv zip,我只是按照安装说明进行操作,OpenCV 不是问题,Qt 也是,我只是不知道如何正确链接两者:)
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多