程序入口点_gxx_personality_v0无法位于动态链接库libstdc ++ - 6.dll中

时间:2014-07-02 11:30:06

标签: c++ opencv dll mingw codeblocks

我已经使用MinGW安装了Codeblocks 13.12,并尝试运行OpenCV应用程序。我编译它没有任何问题但是当我尝试运行它时抛出以下错误:

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

我检查了类似问题的stackoverflow问题,每个人都指向将MinGW dll文件复制到应用程序文件夹。我做到了,然后我遇到了这个错误:

This application has failed to start because libgcc_s_dw2-1.dll was not found. Reinstalling the application may fix this problem.

所以我也复制了那个dll。然后我遇到以下错误:

This application has failed to start because libgcc_s_sjij-1.dll was not found. Reinstalling the application may fix this problem.

我也复制了这个dll然后我又重新发现了关于缺少 __ gxx_personality_v0 入口点的第一个错误。

1 个答案:

答案 0 :(得分:4)

这是ABI不兼容。您正在链接使用两个不同工具链构建的代码(一个具有dw2异常处理,另一个具有sjlj)。

使用相同的工具链重建所有内容,或者找到匹配的工具链:

  • MinGW-w64 installer位于here。您可以在运行时选择各种变体。
  • 使用MSYS2,它附带一个存储库,其中包含已为您编译的各种包(包括OpenCV)。它配备了pacman包管理器(从Arch Linux移植)。它为您提供了一个Unix shell环境,但工具链可以在shell本身之外使用。