由于OpenCV 2.3的发行版终于发布了,我想编译并安装此最新发行版到我的系统上。当我经常使用Qt和QtCreator时,我当然希望能够在我的Qt项目中使用它。我已经尝试了几种方法几个小时,但总是会出错:
第一次尝试:使用WITH_QT 编译OpenCV 2.3
首先,我想这样做,就像我对2.2发行版所做的一样。为此,我遵循了本指南:http://knowtheabc.wordpress.com/2011/02/25/windows-opencv-and-qt-creator/
g++.exe
,gcc.exe
和qmake.exe
的路径,检查WITH_QT并生成Makefile以进行发行。 mingw32-make
和mingw32-make install
成功完成此操作后,我只需要将路径添加到“.pro”文件中就可以构建一些使用OpenCV的漂亮软件(回到我使用2.2版本时)。基本上,最后一部分描述如下:http://knowtheabc.wordpress.com/2011/02/25/opencv-in-qt/
因此,我尝试对2.3版本进行相同的操作,该版本与旧版本一样成功编译。它甚至可以构建我的示例程序,但是一旦我执行它,它就会再次关闭并返回:
-1073741515
第二次尝试:使用MinGW使用预先构建的OpenCV super 包
由于第一种方法不起作用,因此我尝试使用预构建版本。尽管这些未启用WITH_QT,但我仍然想尝试。
因此,我下载了 super 包装,将其提取并放在了某个地方。然后,我想做和以前一样的事情,并将路径包括到include文件夹和dll添加到我的“.pro”文件中:
INCLUDEPATH+= C:/workspace/opencv/OpenCV2.3/build/include
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/*.dll
作为编译器,我使用了当前Qt SDK随附的MinGW编译器。但这在构建时崩溃:
C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/libopencv_calib3d230.dll: file not recognized: File format not recognized
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\CoinDetector.exe] Error 1
mingw32-make: *** [release] Error 2
第三次尝试:和第二次一样,但是使用VC2008编译器
我也尝试使用Qt SDK随附的vc2008编译器进行相同的操作。因此,我选择了编译器,并修改了“.pro”文件中的路径以使用:
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/*.dll
但这也会因无法读取dll的错误而崩溃:
C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/opencv_calib3d230.dll : fatal error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x2F0 nicht möglich.
所以这是我的设置:
是否有人知道这里可能出什么问题?希望得到任何帮助!
最佳答案
我刚刚将QT 4.7.3与OpenCV2.3配合使用。不幸的是,我必须安装Microsoft的VC++ 2008 Express Edition和CDB调试器(均为Microsoft的免费产品)。
好消息是我现在可以在IDE,VS 2008和Qt Creator中为Opencv开发。
这些是我的.pro文件的设置:
INCLUDEPATH += C:/OpenCV2.3/build/include
INCLUDEPATH += C:/OpenCV2.3/build/include/opencv
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_calib3d230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_contrib230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_core230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_features2d230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_flann230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_highgui230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_imgproc230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_objdetect230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_video230.lib
记住,在“项目设置”中选择MSVC编译器
我试过我不知道有多少种不同的方法可以使其与MinGW一起使用,但到目前为止还不正确。
我也使用Windows 7 64位...但是我正在开发32位,所以我想如果我使用x64库,可能会得到64位项目。
祝好运,
安德烈斯
关于visual-studio-2008 - 在QtCreator中将OpenCV 2.3与Qt一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6726026/