Win7 / Eclipse / OpenCV / MinGW:应用程序每次启动时都会崩溃

时间:2013-11-01 22:14:27

标签: c++ windows eclipse opencv mingw

经过与我和OpenCV的艰苦斗争,我终于找到了这个教程:

OpenCV with MinGW on Eclipse Tutorial(滚动到" OpenCV - 使用CMake& MinGW")

我完成了所有内容,但是每当我尝试启动应用程序时,它都会在几秒钟后停止响应并显示Windows警报通信。我注意到,我可以自由运行标准的C ++程序并包含头文件,但是在单行OpenCV代码之后它无法正常工作。此外,没有关于错误的信息。

2 个答案:

答案 0 :(得分:0)

为什么不尝试官方教程http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html#linux-eclipse-usage

这是opencv文档中的官方网站,应该可以帮助您入门,它包含了一些教程,可以帮助您开始使用许多其他平台 http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html#table-of-content-introduction

答案 1 :(得分:0)

我还有一段时间让OpenCV运行但最后我发现了一些有用的东西(我使用Qt Creator作为我的IDE,而不是Eclipse,但可能问题和解决方案类似)。

起初我尝试下载OpenCV 2.4.8,但我发现它没有包含任何MinGW二进制文件。我在网上关注了一个论坛并安装了CMake,但似乎OpenCV 2.4.8没有包含MinGW的CMake目标。在阅读了更多论坛之后,我下载了OpenCV 2.4.3并且能够使用CMake和MinGW 4.8(Qt 5.2附带的版本)来构建OpenCV。这让我能够编译我的程序并尝试运行它们。一些纯c命令甚至像cvLoadImage一样工作,但任何c ++命令如imread或Mat :: zeros(3,3,CV_8UC1)都会导致崩溃。

我尝试用不同的选项多次构建openCV。有些网站建议关闭SSE和SSE2或构建调试版本,但这些都不适用于我。

最后我最终下载了TDM-GCC-32。我下载了随需应变安装程序,并确保获得编译器的dw2版本(因为前一段时间我花了一些时间处理dw2 vs sjlj不兼容性)。最后,我使用TDM-GCC重建了OpenCV,并在Tt Creator中将TDM-GCC设置为编译器。这最终成了修复。

我认为OpenCV Mat类型使用的引用计数/分配代码与某些版本的MinGW之间存在一些不兼容性。我这样说是因为我的所有崩溃似乎来自使用openCV矩阵的代码段。 (好像它没有正确初始化或其他东西)。切换到TDM-GCC编译器解决了这个问题。