flo*_*hge 2 qt opencv mingw qt-creator visual-studio-2008
随着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在我的C:\ Qt ...路径中,检查WITH_QT并生成Makefiles以进行发布.mingw32-make和构建并安装在shell中mingw32-make install在成功完成此操作后,我只需要将路径添加到我的".pro"文件中,并且能够构建一些使用OpenCV的好软件(在我使用2.2版本时).基本上最后一部分在这里描述:http://knowtheabc.wordpress.com/2011/02/25/opencv-in-qt/
所以我尝试使用与旧版本一样成功编译的2.3版本.它甚至构建了我的示例程序,但是只要我执行它,它就会再次关闭并返回:-1073741515
第二次尝试:使用MinGW预先构建的OpenCV superpack
由于第一种方法不起作用,我尝试使用预构建版本.虽然这些没有启用WITH_QT,但我还是想尝试一下.
所以我下载了superpack,将其解压缩并放在某个地方.然后我想像以前一样做,并将include文件夹和dll的路径添加到我的".pro"文件中:
INCLUDEPATH+= C:/workspace/opencv/OpenCV2.3/build/include
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/*.dll
Run Code Online (Sandbox Code Playgroud)
作为编译器,我使用了当前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
Run Code Online (Sandbox Code Playgroud)
第三次尝试:就像第二次尝试一样,但是使用VC2008编译器
我也尝试使用Qt SDK附带的vc2008编译器.所以我选择了编译器并调整了".pro"文件中的路径来使用:
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/*.dll
Run Code Online (Sandbox Code Playgroud)
但是这也会因为无法读取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.
Run Code Online (Sandbox Code Playgroud)
所以在这里我的设置:
有人知道这里可能有什么问题吗?很高兴得到任何帮助!
我刚刚使用我的QT 4.7.3来使用OpenCV2.3.不幸的是,我不得不安装VC++ 2008 Express Edition和Microsoft的CDB调试器(两者都是微软的免费赠品).好的部分是我现在可以在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
Run Code Online (Sandbox Code Playgroud)
请记住,在"项目设置"中选择MSVC编译器
我尝试过我不知道有多少不同的方法可以让它与MinGW一起使用,但到目前为止还没有.我也是Windows 7 64位...但我正在开发32位,我想如果我使用x64库我可能会得到64位项目.
祝好运,
安德烈斯