随着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 …Run Code Online (Sandbox Code Playgroud)