代码之家  ›  专栏  ›  技术社区  ›  user3738870 YOUSIF ALHURIYA

SFML不能在Windows上与CLion一起使用

  •  0
  • user3738870 YOUSIF ALHURIYA  · 技术社区  · 7 年前

    我想在CLion中运行以下简单的C++SFML应用程序,但当我尝试这样做时,总是会收到错误消息 Test2.exe has stopped working .

    主要的cpp公司

    #include <SFML/Graphics.hpp>
    int main()
    {
        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
        sf::CircleShape shape(100.f);
        shape.setFillColor(sf::Color::Green);
    
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
    
        window.clear();
        window.draw(shape);
        window.display();
    }
    
    return 0;
    }
    

    这可能是CMake的问题,但我没有从CLion得到任何错误消息,所以我认为SFML是正确的。

    CMakeLists。txt文件

    cmake_minimum_required(VERSION 3.9)
    project(Test2)
    
    set(CMAKE_CXX_STANDARD 17)
    
    add_executable(Test2 main.cpp)
    
    set(SFML_ROOT "C:/Program Files/SFML-2.4.2")
    
    set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
    find_package(SFML 2 REQUIRED graphics network audio window system)
    
    if(SFML_FOUND)
        include_directories(${SFML_INCLUDE_DIR})
        target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
    endif()
    

    我的SFML位于C:/Program Files/SFML-2.4.2中,我使用的是MinGW的最新版本(2.4.2)。我有以下MinGW版本: MingGW configuration . 我的操作系统是Windows 8.1 Enterprise。 CLion和SFML(使用代码::Blocks)分别可以完美地工作。

    有什么我忘了添加到CMakeLists的吗。或者我应该修改CLion中的一些设置以使SFML工作?

    1 回复  |  直到 7 年前
        1
  •  0
  •   user3738870 YOUSIF ALHURIYA    7 年前

    修改CmakeList后。txt以以下方式创建。exe工作时没有任何错误。

    cmake_minimum_required(VERSION 3.9)
    project(Test2)
    
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc")
    set(SFML_STATIC_LIBRARIES TRUE)
    
    add_executable(Test2 main.cpp)
    
    set(SFML_ROOT "C:/Program Files/SFML-2.4.2")
    
    set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
    find_package(SFML 2 REQUIRED graphics network audio window system)
    
    if(SFML_FOUND)
        include_directories(${SFML_INCLUDE_DIR})
        target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
    endif()