运行 SFML 图形后看不到新窗口

Can't see a new window after running SFML graphics

本文关键字:窗口 新窗口 看不到 SFML 图形 运行      更新时间:2023-10-16

我试图按照本教程使用 Clion 测试 SFML。我用 SFML 示例进入了最后一部分。它编译没有错误,它看到 SFML,但是当我运行实际程序时,我得到的只是:

C:UsersyurysCLionProjectsSFMLDemocmake-build-debugSFMLDemo.exe
Process finished with exit code -1073741515 (0xC0000135)

根据教程,我应该会看到一个新窗口。

我将 MinGW32 与 gcc 5.3.0 一起使用,因此我安装的 SFML 版本与之匹配。我安装了另一个版本以与Visual Studio 2017一起使用。

我的CMake文件如下:

cmake_minimum_required(VERSION 3.6)
project(SFMLDemo)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(SFMLDemo ${SOURCE_FILES})
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
find_package(SFML REQUIRED system window graphics network audio)
link_directories("C:/Clion_SFML/") #Path to the SFML Libraries
if (SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(SFMLDemo ${SFML_LIBRARIES})
endif()

法典:

#include <SFML/Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(640,480,32),"Hello SFML");
    sf::Font font;
    font.loadFromFile("OpenSans-Bold.ttf");
    sf::Text text("Hello World",font,11);
    text.setCharacterSize(32);
    text.setPosition(window.getSize().x/2 - text.getGlobalBounds().width/2,
                     window.getSize().y/2 - text.getGlobalBounds().height/2);

    while(window.isOpen()){
        sf::Event event;
        while(window.pollEvent(event)) {
            if(event.type == sf::Event::Closed){
                window.close();
            }
            window.clear(sf::Color::Black);
            window.draw(text);
            window.display();
        }
    }
    return 0;
}

在评论中回答,但我会将其作为答案提交,以便其他人更容易看到它:

在这种情况下,SFML 是动态链接的。确保正确的 .SFML 所需的 DLL 与可执行文件位于同一目录中。