在 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 的答案实际上能够解决我的问题。
我的规格:
- Qt 5.4.0(Clang 6.0 (Apple),64 位)
- Mac OSX 10.10.1
- 从自制程序安装的 OpenCV 2.4.9
我的 .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
.
我目前正在尝试在 Qt 项目中使用 OpenCV。当我构建它时,出现错误:
error: 'opencv2/opencv.hpp' file not found
#include <opencv2/opencv.hpp>
我知道网络上有很多类似的问题,但到目前为止 none 的答案实际上能够解决我的问题。
我的规格:
- Qt 5.4.0(Clang 6.0 (Apple),64 位)
- Mac OSX 10.10.1
- 从自制程序安装的 OpenCV 2.4.9
我的 .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
.