当我尝试运行我的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;
}
发布于 2015-10-14 21:56:56
libstdc++-6.dll包含运行时环境。它是基本例程的实现,例如堆管理器或异常处理。
这些基本例程几乎在每个程序中都会用到。因此,将它们的副本放入每个程序中将是一种内存浪费。这就是为什么它们通常被打包到一个共享库(DLL)中的原因。然后,当程序需要运行时的例程时,它们可以请求DLL。
在您的示例中,libstdc++-6.dll包含错误版本的运行时。有两种可能性:
nm libstdc++-6.dll | grep personality
来确定某个DLL是否正确。如果__gxx_personality_v0
出现在列表中,那么您的DLL可能是正确的。-static-libgcc -static-libstdc++
添加到链接器参数来完成此操作。发布于 2013-07-20 15:42:15
这个问题在stackoverflow上似乎已经回答了好几次了。What is __gxx_personality_v0 for?就是其中之一
https://stackoverflow.com/questions/16141451
复制相似问题