我在qmake项目中遇到了包含问题.在我的.pro文件中,我得到了:
INCLUDEPATH += "C:\OpenCV\build\include"
Run Code Online (Sandbox Code Playgroud)
在我的cpp中:
#include <opencv\cv.h>
Run Code Online (Sandbox Code Playgroud)
编译器指示错误:
无法打开包含文件:'opencv\cv.h':没有这样的文件或目录
但如果我在我的cpp中写这个:
#include "C:\OpenCV\build\include\opencv\cv.h"
Run Code Online (Sandbox Code Playgroud)
有用!
我在Qt Creator中构建项目.我究竟做错了什么?
我正在努力设置OpenCV
与QT
OSX 10.7.5/MacbookPro 2.5 Ghz Intel Core 2 Duo一起使用.我在这里看到了一些相关的问题(如何在QtCreator中链接opencv并使用Qt库 以及 如何在OSX中使用QT设置OpenCV?)但是没有太多细节.在QT网站和我的网络搜索中,所有信息似乎都与Windows或Linux有关.
我列出了我的设置和代码如下.当我运行代码时,我收到一个错误::-1: error: symbol(s) not found for architecture x86_64
这是否意味着它找不到东西,因为路径错误或因为我可能为x86_32构建了openCV?有没有办法检查后者?部分配置和设置过程我不是那么精明.
更新2
控制台输出低于 - 可能错误很明显?
02:44:38: Running steps for project RP_openCV_01...
02:44:38: Configuration unchanged, skipping qmake step.
02:44:38: Starting: "/usr/bin/make"
clang++ -headerpad_max_install_names -mmacosx-version-min=10.6 -o RP_openCV_01 main.o -L/usr/local/lib -1ibopencv_core.2.4.6,dylib -1ibopencv_imgproc.2.4.6.dylib -F/Users/rise/Qt5.0.2/5.0.2/clang_64/lib -framework QtCore
clang: warning: argument unused during compilation: '-1ibopencv_core.2.4.6,dylib'
clang: warning: argument unused during compilation: '-1ibopencv_imgproc.2.4.6.dylib'
Undefined symbols for architecture x86_64:
"cv::_InputArray::_InputArray(cv::Mat const&)", referenced from: …
Run Code Online (Sandbox Code Playgroud) 我尝试了两种方法使用opencv和qt creator第一次使用Mingw,其中dll和.dll.a文件已经下载了opencv库,我只是添加.pro文件中的.dll.a文件的引用,如下所示
INCLUDEPATH += D:\\OpenCV\\opencv\\build\\include
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_calib3d242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_contrib242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_core242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_features2d242.dll.a
Run Code Online (Sandbox Code Playgroud)
我有一个简单的代码来测试opencv:
#include <QtCore/QCoreApplication>
#include <opencv/cv.h>
using namespace cv;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Mat image;
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
但我有一个构建问题如下
C:\ Users\Kato\Documents\QT projects\QtOpenCVYaRab\debug\main.o:-1:在函数
~Mat': d:\OpenCV\opencv\build\include\opencv2\core\mat.hpp:278: error: undefined reference to
cv :: fastFree(void*)'d:\ OpenCV\opencv\build\include\opencv2\core\mat .hpp:367:错误:未定义引用`cv :: Mat :: deallocate()': - 1:错误:collect2:ld返回1退出状态
这是一些编译输出:
Running build steps for project QtOpenCVYaRab...
Configuration unchanged, skipping qmake step.
Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe"
C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory …
Run Code Online (Sandbox Code Playgroud) 我在配置OpenCV SDK时遵循了这些说明,以便在Qt Creator IDE中使用它,但由于Cmake-GUI中的配置错误,我无法得出结论6.5.我在MinkeW的Qt文件夹中包含的编译器gcc和g ++的CMake中设置配置,所有看起来都好.但是当Cmake-GUI启动构建配置的过程时,它最终会说
"配置过程出错,项目文件可能无效".
它找不到以下内容:
- QT_QMAKE_EXECUTABLE;
- Qt5Concurrent_DIR;
- QT5Core_DIR;
- QT5Gui_DIR;
- QT5Test_DIR;
- QT5Widgets_DIR.
在这个问题之后,我尝试继续使用以下配置教程,而没有达到mingw32-make install的最终指令.我使用的是以下版本的软件:Qt 5.3.0,OpenCV 2.4.9,CMake 2.8.12.2.我的操作系统是Windows 7.
如何在CMake配置中恢复丢失的Qt文件?是否有另一种方法可以使用Qt配置OpenCV(比如使用预编译的OpenCV库构建)?