我正在尝试在我的项目中使用开源工具。我曾经使用 Qt5 插件在 VS2010 中编写代码。我想将我的项目移植到 Qt。在使用 VS2010 时,会提供 OpenCV dll 和库,以便我轻松使用它们。不幸的是,当我决定使用 Qt 时,我明白我必须从头开始根据 Qt 设置编译 OpenCV。
无论如何,我使用 cmake 工具编译 OpenCV 2.4.5 并且遇到了一个 opencv 错误(编译时它停止在 37%):( 然后我编译了 OpenCV 2.4.2,它被编译了。我测试过,它正在工作我的小程序测试。但是它并没有在我的实际项目中运行。它编译并运行程序。但它总是给出运行时错误。我知道代码没有问题,因为在VS2010中它运行良好。我认为这是关于一些我无法处理的链接问题。
我在 Qt 中编译时收到以下警告消息。
:-1: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
下面是编译输出的一部分。
LD:\opencv242qt\install\lib -lopencv_core242.dll -lopencv_highgui242.dll -lopencv_imgproc242.dll -lopencv_features2d242.dll -lopencv_nonfree242.dll -lopencv_flann242.dll -lopencv_calib3d242.dll -lopencv_objdetect242.dll -lopencv_stitching242.dll -lopencv_calib3d242.dll -lQtGui4 -lQtCore4
Info: resolving VTT for cv::SIFT by linking to __imp___ZTTN2cv4SIFTE (auto-import)
Info: resolving vtable for cv::FlannBasedMatcher by linking to __imp___ZTVN2cv17FlannBasedMatcherE (auto-import)
Info: resolving vtable for cv::_InputArray by linking to __imp___ZTVN2cv11_InputArrayE (auto-import)
Info: resolving vtable for cv::_OutputArray by linking to __imp___ZTVN2cv12_OutputArrayE (auto-import)
mingw32-make.exe[1]: Leaving directory `C:/Users/emresaslan/Documents/QtProjects/Project2'
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
20:44:09: The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited normally.
我不知道为什么它不起作用,但我想问题可能取决于我的 opencv 编译。编译时,我只选择了 With_Qt 选项并取消选中了 CUDA 选项。
我还想说当我使用stitcher 类的stitch 函数时程序崩溃。它在特征检测后崩溃。确切地说,我可以说成对匹配过程会杀死程序:(
我正在使用 Qt 4.8.1、OpenCV 2.4.2,我该如何解决这个问题?我需要在跨平台上工作我的项目,以便我使用 Qt。