此代码使程序卡住(“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 (Code::Blocks)。我不知道为什么,我按照所有说明链接库,但似乎没有任何效果。
我可能因为愤怒而遗漏了一些简单的东西(我已经尝试运行示例代码一个星期了,但没有任何效果),所以有人可以给我一 block 骨头吗?
其他细节:
- 链接到 -d 库没有帮助
- 我将所有 .dll 都放在与 .exe 相同的目录中
- 调试和 Release模式没有帮助
- 我将应用程序设置为“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 生成的库。
最佳答案
复制评论中的答案:
我用谷歌搜索只是为了看看这个库是什么,所有迹象表明您需要重新编译该库:en.sfml-dev.org/forums/index.php?topic=8726.0
这确实解决了问题。
关于c++ - 调用 Clock::getElapsedTime() 时 SFML 2.0 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130862/