在 OSX 10.10 上的 Qt5 中找不到 OpenCV 库

OpenCV libraries not found in Qt5 on OSX 10.10

我目前正在尝试在 Qt 项目中使用 OpenCV。当我构建它时,出现错误:

error: 'opencv2/opencv.hpp' file not found
#include <opencv2/opencv.hpp>

我知道网络上有很多类似的问题,但到目前为止 none 的答案实际上能够解决我的问题。

我的规格:

我的 .pro 文件如下所示:

QT       += core gui multimedia multimediawidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MainProject
TEMPLATE = app
SOURCES += main.cpp mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui

INCLUDEPATH += /usr/local/include/opencv2

LIBS += -L/usr/local/lib
LIBS += -lopencv_core
LIBS += -lopencv_imgproc
LIBS += -lopencv_highgui
LIBS += -lopencv_ml
LIBS += -lopencv_video
LIBS += -lopencv_features2d
LIBS += -lopencv_calib3d
LIBS += -lopencv_objdetect
LIBS += -lopencv_contrib
LIBS += -lopencv_legacy
LIBS += -lopencv_flann

我确保 link 确实 link 到了正确的位置。所有头文件和所有 .dylib 文件也都在那里。我检查了库的类型:

$ file libopencv_core.dylib 
libopencv_core.dylib: Mach-O 64-bit dynamically linked shared library x86_64

在我的项目设置中,qmake命令是:

qmake: qmake MainProject.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64

遗憾的是我对这些compile-things只有一个基本的了解,所以我不太确定,是否与clang有关?我读到一些关于 clang 在 OSX 10.10 Yosemite 上的行为有所不同的内容,但我并不完全理解为什么。关于我的 clang 的信息:

$ clang --version
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix

我也尝试过在 Qt 中使用 gcc-kit(/usr/bin 中的 GCC x86 64bit),但是这搞砸了很多,我不明白。

有人知道我做错了什么吗?任何帮助表示赞赏!

帕特里克

您已经在 #include 语句中包含了目录 opencv2。您应该将包含路径更改为 INCLUDEPATH += /usr/local/include.