我在 windows 7 上工作,并安装和编译了 OPENCV 2.4.6,它与 microsoft studio 2012 完美配合,所以我知道如何找到 OPENCV include 和 lib 的路径,并在系统变量
但是到了QT,就完全不行了。我知道在 stackoverflow 上有很多关于如何在 Windows 中将 opencv 与 QT 链接的问题,但我尝试了所有答案,但对我来说从来没有成功。
这是我的适用于 visual studio 2012 的配置。
系统变量路径:
- D:\Program Files\opencv\build\x64\vc11\bin;
包含路径:
- D:\Program Files\opencv\build\include\;
- D:\Program Files\opencv\build\include\opencv;
- D:\Program Files\opencv\build\include\opencv2;
库路径:
- D:\Program Files\opencv\build\x64\vc11\lib;
我已经下载并安装了QT 5.1.1,并开始了一个项目。在专业版中,我是这样编辑的,
INCLUDEPATH += D:\Program Files\opencv\build\include \
我认为这应该可以工作,但是在 main() 中,当我添加标题时
#include "opencv/cv.h"
#include <opencv/highgui.h>
QT 编译器总是告诉我'没有那个文件或目录'
这种愚蠢的问题困扰了我好几天,我不知道哪里出了问题,有没有人能帮帮我。
更新: 谢谢大家,Gibby 的回答帮助我解决了第一个“找不到 header ”的问题,但是现在运行程序,我遇到了像“release\test.exe:-1: error:LNK1120: 6”这样的问题 Unresolved external 问题”
肯定是库链接的问题,我试过了
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 \
但这些都不起作用
最佳答案
您需要使用 Qt 构建 OpenCV。步骤是,
- 在您的计算机上安装 Qt(我对所有版本的 OpenCV 使用 Qt4,因为我的应用程序基于它,但您也可以使用 Qt5)。
- 记下安装路径(对我来说,它是
D:/Qt/4.8.5/
并将其放入您的Path
环境变量中。< - 打开 CMake 并开始 OpenCV 的构建过程。确保选择
CMAKE
下的选项WITH_QT
。 - 我的
CMAKE_INSTALL_PREFIX
ssD:/Program Files/opencv
并且它也在我的Path
环境变量中;你可以相应地改变你的。 - 需要使用其他选项进行构建。生成文件,然后构建二进制文件并在上述路径中安装 OpenCV。
- 您的 OpenCV 安装现在支持 Qt,您可以在 VS 和 Qt Creator 中使用它。如需进一步引用,请前往 this link .
HTH
关于c++ - 将 opencv 2.4.6 与 Qt 库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20334254/