2

While trying to run c++ programs with MINGW & CODEBLOCKS I am getting the following error

The procedure entry point `_gxx_persopnality _v0` could not be located in the dynamic link library `libstdcc++-6.dll`

http://i50.tinypic.com/256wgfd.png

This is a picture of the current setting I am using. I am using G++ and NOT gcc

http://i49.tinypic.com/2z8cg8n.png

Note :

  1. I have set the path of MINGW in my path(environment variables)
  2. Getting this error since i downloaded QT SDK which comes with its own Mingw
  3. Reinstalled both Codeblocks and MINGW several times.
  4. Both my path and system variables are set to point to my installation location of MinGW's bin directory.

How do I resolve this error? I want to use both codeblocks and qt

4

1 回答 1

1

似乎您也已将 Qt 自己的 MinGW 添加到其中PATH。优先级是在 中遇到的第一个PATH。因此,您似乎在PATH.

你似乎已经用你原来的 MinGW 发行版编译了你的应用程序,然后你安装了 Qt 的一个,因此你的应用程序现在加载了错误的libstdcc++-6.dll(即来自 Qt 的 MinGW 的那个),而它应该从你原来的 MinGW 发行版中加载那个.

您应该选择要用于开发的哪一个,因为它们具有不同的版本,因此它们的动态库(如libstdcc++-6.dll)具有不同的布局。

因此,如果您只是希望您的应用程序现在可以正常运行 - 只需将原始 MinGW 放在PATHQt 之前。

如果您想使用 Qt 开始开发(我怀疑这是真的,因为您已经下载了它),那么您有 2 个选项可供选择:

  1. 您希望保留原来的 MinGW 发行版并使用它构建 Qt 应用程序,而不是使用 Qt 的内置版本。例如,我确实喜欢这样,即我从不使用 MinGW 中内置的 Qt,因为它非常过时并且不支持 64 位 Windows 目标。为此,您必须使用原始 MinGW 发行版从源代码构建 Qt 本身。

  2. 您不在乎(或懒得从源代码构建 Qt),那么您最好使用 MinGW 中内置的 Qt 进行一般开发,并可能完全删除原始的 MinGW 发行版。

注意:我想强调的是,您不能混合使用这 2 个 MinGW 发行版。好吧,这实际上并非如此,当然,如果您知道何时可以做到以及如何做到这一点,当然可以,但这需要深入了解链接过程以及与之相关的许多陷阱,我想您还没有(对不起,如果我错了)。然而,即便如此,您也不是 100% 安全,仍然会遇到奇怪的错误和崩溃。这就是为什么,为了避免这些头痛,只是不要混合它们。

于 2013-04-12T12:17:37.013 回答