SFML 中的分段错误 调用 sf::窗口::关闭后



我正在尝试在与main((不同的线程上运行SFML窗口。调用 sf::Window::close 不会导致任何直接问题,但是在 main(( 结束时,可能会在 UI 对象被破坏时发生分段错误错误。如果未调用 sf::Window::close,则不会发生分段错误。

我正在运行一个完全更新的 Debian 10 安装。

#include <thread>
#include <SFML/Graphics.hpp>
int main() {
    sf::Window window(sf::VideoMode(500,500), "Test");
    std::thread th(&sf::Window::close, &window);
    th.join();
}

我发现了问题。在关闭另一个线程之前,您必须停用该窗口,如下所示。我最初在文档中错过了这一点。

#include <thread>
#include <SFML/Graphics.hpp>
int main() {
    sf::Window window(sf::VideoMode(500,500), "Test");
    window.setActive(false);
    std::thread th(&sf::Window::close, &window);
    th.join();
}

相关内容

  • 没有找到相关文章

最新更新