【问题标题】:link opencv 2.4.6 with Qt library将 opencv 2.4.6 与 Qt 库链接
【发布时间】:2013-12-02 17:28:00
【问题描述】:

我在windows 7上工作,安装并编译了OPENCV 2.4.6,它在microsoft studio 2012上运行得很好,所以我知道如何找到OPENCV include和lib的路径,并在系统变量

但是当谈到 QT 时,它完全不起作用。我知道在stackoverflow上有很多关于如何在windows中将opencv与QT链接的问题,但是我尝试了所有的答案,但对我来说从来没有成功。

这是适用于 Visual Studio 2012 的配置。

系统变量路径:

  1. D:\Program Files\opencv\build\x64\vc11\bin;

包含路径:

  1. D:\Program Files\opencv\build\include\;
  2. D:\Program Files\opencv\build\include\opencv;
  3. D:\Program Files\opencv\build\include\opencv2;

库路径:

  1. D:\Program Files\opencv\build\x64\vc11\lib;

我已经下载并安装了 QT 5.1.1,并开始了一个项目。在pro中,我是这样编辑的,

INCLUDEPATH += D:\Program Files\opencv\build\include \

我认为这应该可以工作,但是在 main() 中,当我添加了标题时

#include "opencv/cv.h"
#include <opencv/highgui.h>

QT 编译器总是会告诉我'没有这样的文件或目录'

这种愚蠢的问题困扰了我好几天,我不知道哪里出了问题,有没有人可以帮助我。

更新: 谢谢大家,Gibby 的回答帮助我解决了第一个问题 'headers can't be found',但是现在运行程序,我遇到了 'release\test.exe:-1: error:LNK1120: 6 这样的问题未解决的外部'

所以肯定是库的链接,我试过了

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    -lopencv_core246 \
    -lopencv_highgui246 \
    -lopencv_imgproc246 \
    -lopencv_features2d246 \
    -lopencv_calib3d246 \ 

或

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    -lopencv_core246.lib \
    -lopencv_highgui246.lib \
    -lopencv_imgproc246.lib \
    -lopencv_features2d246.lib \
    -lopencv_calib3d246.lib \ 

或来自How to link opencv in QtCreator and use Qt library

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    libopencv_core246 \
    libopencv_highgui246 \
    libopencv_imgproc246 \
    libopencv_features2d246 \
    libopencv_calib3d246 \

但这些都不起作用

【问题讨论】:

  • 您是否检查过“opencv”确实是 D:\Program Files\opencv\build\include 的子目录?
  • 是的,我确实检查了很多次,'opencv' 和 'opencv2' 是该路径的子目录。我什至检查了里面的头文件。仍然,不知道出了什么问题
  • 我确实喜欢这个 -- INCLUDEPATH += "D:\Program Files\opencv\build\include" \ ,仍然是同样的问题。我也试过 -- INCLUDEPATH += "D:\Program Files\opencv\build\include\" ,它会输出一个错误'missing the quote'

标签: c++ qt opencv


【解决方案1】:

您需要使用 Qt 构建 OpenCV。步骤是,

  1. 在您的计算机上安装 Qt(我将 Qt4 用于所有版本的 OpenCV,因为我的应用程序都基于它,但您也可以使用 Qt5)。
  2. 记下安装路径(对我来说,它是D:/Qt/4.8.5/ 并将其放入您的Path 环境变量中。
  3. 打开 CMake 并启动 OpenCV 的构建过程。确保选择CMAKE 下的选项WITH_QT。
  4. 我的CMAKE_INSTALL_PREFIX ss D:/Program Files/opencv,它也在我的Path 环境变量中;你可以相应地改变你的。
  5. 需要使用其他选项构建。生成文件,然后构建二进制文件并在上述路径中安装 OpenCV。
  6. 您的 OpenCV 安装现在支持 Qt,您可以在 VS 和 Qt Creator 中使用它。如需进一步参考,请前往this link。

HTH

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,并通过将项目设置为发布(qt 窗口左下角)而不是调试然后将 qt 和 opencv 库复制到 bin 文件夹中来解决它。将项目设置为构建后,将在 bin 文件夹中生成一个 .exe 文件。运行该应用程序会告诉您仍然缺少什么 dll,在 opencv/build/x64/vc11/bin 找到 opencv dll,在 Qt/Qt(version)/(version)/(compiler)/bin 找到 qt dll

    ~吉比

    【讨论】:

    • 但是现在我遇到了另一个问题,链接库不起作用
    • 您的代码和我的代码之间的一个区别是我在您的路径中使用 x86 而不是 x64,至少值得一试。
    【解决方案3】:

    因为空格字符。

    qmake 可能会认为“D:\Program”和“Files\opencv\build\include”是分开的。

    用双引号将你的路径括起来。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 2013-04-17
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      相关资源
      最近更新 更多