SFML 2.1和Codeblocks错误:您的计算机缺少sfml-graphics-2.dll

时间:2015-03-24 20:14:07

标签: c++ sfml

我刚刚开始使用c ++和SFML,一切都很好。在我得到Undefined Reference Errors之前,我意识到我一直在下载错误类型的SFML,得到SJLJ而不是DW2。问题已解决,但被另一个问题所取代;现在每当我运行SFML程序时,它都会打开一个小窗口:

它说:

  

程序无法启动,因为缺少sfml-graphics-2.dll   你的电脑。尝试重新安装该程序以解决此问题。

然后当您按“确定”或关闭窗口时,程序将停止工作。不要混淆:程序从未在控制台上打开过程。

以下是从codeblocks教程网站直接复制和粘贴的代码(可能无用):

#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;
}

4 个答案:

答案 0 :(得分:5)

默认情况下,SFML是动态链接的,这意味着您需要将sfml-graphics-2.dll(以及您使用的任何其他SFML子系统的dll文件)放在与可执行文件相同的目录中。

答案 1 :(得分:5)

从主dll目录复制所有SFML > bin个文件并将其粘贴到项目文件夹中。就我而言,它是C:\Users\myname\Documents\Visual Studio 2017\SFML\SFML enter image description here

如果您只想运行exe文件。将所有dll个文件放在与主exe文件相同的目录中。

答案 2 :(得分:0)

我有类似的问题。我的错误是当我在编译器设置中链接库时,我忘了添加后缀&#34; -s-d&#34;。此结尾允许编译器和调试器正常运行。

答案 3 :(得分:0)

最佳选择是从 SFML-2.4.2&gt;复制所有.dll文件。仓即可。过去他们 C:&gt; Windows&gt; System32 文件夹。这就是你需要做的。 然后运行您的程序。 你将能够运行它。