运行SFML图形后无法看到新窗口

时间:2017-03-19 15:53:13

标签: c++ graphics sfml clion

我尝试在this教程之后使用Clion测试SFML。我用SFML示例得到了最后一部分。它编译没有错误,它看到了SFML,但是当我运行实际程序时,我得到的是:

C:\Users\yurys\CLionProjects\SFMLDemo\cmake-build-debug\SFMLDemo.exe

Process finished with exit code -1073741515 (0xC0000135)

根据教程我想看new window

我将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;
}

1 个答案:

答案 0 :(得分:0)

在评论中回答,但我会将其作为答案提交,以便其他人更明白:

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