【问题标题】:SFML 2.1 and Codeblocks Error: sfml-graphics-2.dll is missing from your computerSFML 2.1 和代码块错误:您的计算机中缺少 sfml-graphics-2.dll
【发布时间】:2015-05-28 07:37:54
【问题描述】:

我刚刚开始使用 c++ 和 SFML,一切都运行良好。在我得到未定义的引用错误之前,但我意识到我一直在下载错误类型的 SFML,得到的是 SJLJ 而不是 DW2。问题已解决,但已替换为另一个;现在每当我运行一个 SFML 程序时,它都会打开一个小窗口:

上面写着:

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

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

这是从代码块教程网站直接复制粘贴的代码(可能没用):

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

【问题讨论】:

    标签: c++ sfml


    【解决方案1】:

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

    【讨论】:

    • 我知道这是一篇旧帖子,但我已经完成了所有这些。该应用程序在 IDE 中运行,但双击 EXE 时出现错误 _ZSt4_throw_out_of_range_fmtPKcz could not be located in sfml-graphics-2.dll。所有 DLL 都与我的 EXE 位于同一文件夹中
    【解决方案2】:

    SFML &gt; bin 主目录复制所有dll 文件并将它们粘贴到您的项目文件夹中。就我而言,它是C:\Users\myname\Documents\Visual Studio 2017\SFML\SFML

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

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题。我的错误是当我在编译器设置中链接库时忘记添加后缀“-s-d”。这个结尾允许编译器和调试器正常工作。

      【讨论】:

        【解决方案4】:

        最好的选择是复制 SFML-2.4.2 > bin 中的所有 .dll 文件。并将它们传递到 C:> Windows > System32 文件夹。这就是你需要做的。 然后运行你的程序。 你将能够运行它。

        【讨论】:

          猜你喜欢
          • 2015-09-01
          • 2015-07-26
          • 2012-11-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-31
          • 2018-10-28
          相关资源
          最近更新 更多