SFML不适用于Windows上的CLion

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SFML不适用于Windows上的CLion相关的知识,希望对你有一定的参考价值。

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

main.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(使用Code :: Blocks)都可以完美地工作。

有没有我忘记添加到CMakeLists.txt或我应该修改CLION中的一些设置以使SFML工作?

答案

以下列方式修改CMakeLists.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()

以上是关于SFML不适用于Windows上的CLion的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL 3.0 不适用于 Windows 上的 Qt

为啥 cURL 不适用于 IIS7 上的 Windows 身份验证?

phpunit 命令不适用于 Windows 7 上的 laravel 4

Grails 上的同步块适用于 Windows,但不适用于 linux

标题属性不适用于Safari上的SVG Rect

Google Maps API V3 pinch-to-zoom 不适用于 Windows 8.1 预览版上的 IE 11