将MinGW从4.4.1更新到4.7.1后,SFML项目将无法运行

时间:2013-09-29 22:16:38

标签: c++ g++ mingw codeblocks sfml

所以今天早上我将我的MinGW编译器升级到4.7.1(我认为是4.4.1),并且此后一直试图让旧项目再次正常构建和运行。我的努力遇到了障碍,但是现在,每当我尝试编译使用SFML库的项目时,我都会收到以下错误:

无法在动态链接库libstdc ++ - 6.dll

中找到过程入口点__gxx_personality_v0

现在我知道这个问题has been discussed before,但不幸的是,定义void *__gxx_personality_v0;的提议hacky-fix对我没有任何好处,我已经检查过我是否偶然使用了GCC,但CodeBlocks将C ++编译器设置为MinGW的G ++,而不是GCC(在Settings-> Compiler-> Toolchain Executables-> Program Files下,我有mingw32-g++.exe作为C ++编译器)。所以这似乎不是问题。

我试图编译的程序完全是example from the SFML website

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}

目前我尝试运行的每个SFML项目都会出现此问题,但是小的非SFML项目似乎运行良好。

我可以尝试一下来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这需要更多信息,但让我试着猜测一下。是否有可能以某种方式,您仍然链接libstdc++-6.dll文件的旧版本(或其他版本)?

你的EXE旁边有dll吗?您是否尝试过使用您正在使用的编译器提供的版本?在那种情况下,其中libstdc ++ - 6.dll文件位于bin目录下的MinGW。