【问题标题】:SFML 2.0 crashes when Clock::getElapsedTime() is called调用 Clock::getElapsedTime() 时 SFML 2.0 崩溃
【发布时间】:2012-10-19 07:30:04
【问题描述】:

此代码使程序冻结(“Game.exe 已停止工作”):

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>

int main()
{

    sf::Clock clock;
    clock.getElapsedTime();

    return 0;
}

但是,这不会崩溃:

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>

int main()
{

    sf::Clock clock;

    return 0;
}

我正在使用 SFML 2.0、Windows 7、MinGW 4.70(代码::块)。我不知道为什么,我按照所有说明链接库,但似乎没有任何效果。

我可能因为愤怒而遗漏了一些简单的东西(我已经尝试运行示例代码一个星期,但没有任何效果),所以有人可以给我一根骨头吗?

其他详情:

  • 链接到 -d 库没有帮助
  • 我将所有 .dll 与 .exe 放在同一目录中
  • 调试和发布模式没有帮助
  • 我将应用程序设置为“GUI 应用程序”,而“控制台应用程序”也不起作用

GDB 吐出一段。故障:

Program received signal SIGSEGV, Segmentation fault.
In sf::Clock::Clock() () (C:\Users\kworden\Documents\Work\Programming\Game\bin\Debug\sfml-system-2.dll)
At C:\Users\kworden\Documents\Work\Programming\Game\main.cpp:8

解决方案:

自己编译库。我使用教程 here 并重新链接到 CMake 生成的库。

【问题讨论】:

  • 任何 SFML 函数都会发生这种情况,只是 getElapsedTime 或只是 Clock 函数?
  • 其他一切都失败了。 RenderWindow 在 ctor 处失败。
  • 你试过gdb吗?如果有,它报告了什么?
  • 我用谷歌搜索这个只是为了看看这个库是什么,所有迹象表明你需要重新编译这个库:en.sfml-dev.org/forums/index.php?topic=8726.0
  • 我更新了帖子以显示 GDB 显示的内容,现在将尝试编译库。

标签: c++ c sfml


【解决方案1】:

复制评论中的答案:

我搜索了这个只是为了看看这个库是什么,所有迹象表明你需要重新编译这个库:en.sfml-dev.org/forums/index.php?topic=8726.0

这确实解决了问题。

【讨论】:

    猜你喜欢
    • 2022-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2018-05-14
    • 1970-01-01
    • 2015-09-16
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多