【发布时间】: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 显示的内容,现在将尝试编译库。