gpt4 book ai didi

c++ - 无法在动态链接库 libstdc++-6.dll 中找到过程入口点 __gxx_personality_v0

转载 作者:太空狗 更新时间:2023-10-29 21:46:00 26 4
gpt4 key购买 nike

我在尝试运行我的 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;
}

最佳答案

libstdc++-6.dll 包含运行时 环境。它是基本例程的实现,例如堆管理器或异常处理。

几乎每个程序都会用到这些基本例程。因此,将它们的拷贝放入每个程序中会浪费内存。这就是为什么它们通常被打包到共享库 (DLL) 中的原因。然后,程序可以在需要运行时例程时请求 DLL。

在您的情况下,libstdc++-6.dll 包含错误版本的运行时。有两种可能:

  • 找到包含正确版本运行时的 libstdc++-6.dll,并将其复制到可执行文件的目录中。您可以通过运行 nm libstdc++-6.dll | 来确定 DLL 是否正确。 grep 个性。如果 __gxx_personality_v0 出现在列表中,那么您可能拥有正确的 DLL。
  • 将运行时环境的拷贝放入可执行文件中。您可以通过将 -static-libgcc -static-libstdc++ 添加到您的链接器参数来执行此操作。

关于c++ - 无法在动态链接库 libstdc++-6.dll 中找到过程入口点 __gxx_personality_v0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com