【发布时间】: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 的配置。
系统变量路径:
- 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,并开始了一个项目。在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'