2012年6月24日星期日

在Qt4.8.0中使用OpenCV 2.3程序异常退出的解决办法

      最近要做一些视频处理方面的内容,在Directshow和OpenCV之间徘徊了一阵后选择了OpenCV,毕竟和Qt一样都是开源跨平台的东东,搭配在一起显得格外和谐。然而按照这篇教程写完后发现那位博主使用的是OpenCV 2.1,而我下载的是OpenCV 2.3,似乎目录结构发生了一些变化,不能按照原来的方法写.pro文件了。琢磨了一番后将文件修改如下:

#-------------------------------------------------
#
# Project created by QtCreator 2012-06-23T15:40:59
#
#-------------------------------------------------
QT       += core gui
TARGET = opencv
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui
INCLUDEPATH += F:/opencv/build/include
INCLUDEPATH += F:/opencv/build/include/opencv
LIBS += F:\OpenCV2.3\build\x86\mingw\bin\*.dll
      编译没问题,结果运行的时候程序直接退出了,返回值-1073741515。一开始以为是.pro文件的问题,可是无论怎么修改仍然是不能正常运行;更换2.4.1版本的程序库也无济于事。在此期间甚至想放弃Qt转投VS(按照网上的教程VS 2010配置运行成功)。在绝望的时候,突然想会不会是缺什么东西的原因。因此在资源管理器中将所需全部DLL文件复制到exe程序目录下,点击运行后,系统果然提示缺少libstdc++-6.dll这个文件,不仅喜上眉梢,有门!
         然而此时高兴为时太早。将C:\QtSDK\mingw\bin下的libstdc++-6.dll复制过来后却提示“无法定位程序输入点”,看来DLL版本不对!只能上网搜碰运气了!终于,在这里找到了合适的DLL,这回终于正常运行了!
         老规矩,再次放上福利图一枚(看着是不是有点眼熟呢?):