我在尝试运行opencv应用程序时遇到了这个错误。我使用的是Windows7,CodeBlocks 12.11,opencv2.4.4和MinGW编译器(CodeBlocks中的编译器)。它编译并创建可执行文件,但是当我尝试运行它时,程序入口点错误崩溃。 我已将C:\ programs \ CodeBlocks \ Mingw \ bin添加到“PATH”变量,我知道有libstdc ++ - 6.dll。
我不知道有什么变化。
这是简单的代码:
include <iostream>
include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
cout << "Hello world!" << endl;
namedWindow("window");
Mat image=imread("mustang.jpg",CV_LOAD_IMAGE_COLOR);
imshow("window",image);
waitKey(0);
return 0;
}
答案 0 :(得分:1)
这个问题似乎已在stackoverflow上多次回答。 What is __gxx_personality_v0 for?作为其中之一
答案 1 :(得分:0)
libstdc ++ - 6.dll包含运行时环境。它是基本例程的实现,例如堆管理器或异常处理。
几乎每个程序都使用这些基本例程。因此,将它们的副本放入每个程序将是浪费内存。这就是为什么它们通常被打包到共享库(DLL)中。然后程序可以在需要运行时例程时请求DLL。
在您的情况下,libstdc ++ - 6.dll包含错误版本的运行时。有两种可能性:
nm libstdc++-6.dll | grep personality
来确定DLL是否正确。如果__gxx_personality_v0
出现在列表中,那么您可能拥有正确的DLL。-static-libgcc -static-libstdc++
添加到链接器参数来完成此操作。