打开cv程序崩溃说关于“libstdc ++ - 6.dll mingw”的错误

时间:2013-06-26 20:08:46

标签: c++ qt5

我对opencv很新。我心不情愿地下载了opencv 2.4.5,使用code :: blocks正确配置了它。即时通讯使用mingw4.7编译器。当我编译下面的代码时,它编译没有错误。但是当运行二进制文件时,它说

he procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll

然后我将dell文件放在bingry旁边的mingw / bin文件夹中。它没有解决问题。然后我从互联网上下载了.dll文件并将其放在二进制文件旁边。现在它没有给出eny错误但是Windows崩溃应用程序并且termanite它。我在互联网上读到这个.dll文件有很多问题。但我不能单独解决这个问题。如果enyone可以帮助我解决这个非常好的问题......感谢eny帮助...

代码是,

  #include "opencv2/highgui/highgui.hpp"
  #include <iostream>

  using namespace cv;
  using namespace std;

  int main( int argc, const char** argv )
  {
    Mat img = imread("MyPic.JPG", CV_LOAD_IMAGE_UNCHANGED);
    if (img.empty())          
      return -1;
  }

 namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
 imshow("MyWindow", img); 

 waitKey(0);

 destroyWindow("MyWindow"); 

 return 0;
 }

2 个答案:

答案 0 :(得分:1)

发生这种情况的最常见原因是混合使用mingw gcc编译器TDM-GCC编译的不同版本的库,涉及堆栈展开等异常机制。常用的方法有两种,DW2和SJLJ以及两种方法之间混合预编译库会导致上述错误。确保所有内容都使用相同的编译器编译。

答案 1 :(得分:0)

我有同样的问题,我决定:

在Eclipse-Win7,mingw4.7.2中,我只是将-lstdc ++添加到其他链接器标志中。