1

我对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

然后我将戴尔文件放在 mingw/bin 文件夹中的二进制文件旁边。它没有解决问题。然后我从互联网上下载了 .dll 文件并将其放在二进制文件旁边。现在它没有给出任何错误,但 Windows 使应用程序崩溃并对其进行了终止。我在互联网上读到这个 ​​.dll 文件有很多问题。但我不能独自解决这个问题。如果任何人都可以在这个问题上帮助我,那将是非常棒的......谢谢你的帮助......

代码是,

  #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;
 }
4

2 回答 2

1

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

于 2013-06-26T21:19:34.997 回答
0

我有同样的问题,我解决为:

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

于 2013-07-24T22:52:54.053 回答