为了避免自己编译SFML,选择下载编译好的SFML,但这个时候必须选择和SFML完全一样的toolchain版本。

下载SFMLMingW

  1. 下载SFML for GCC 7.3.0 MinGW (SEH) - 64-bit,解压到合适目录。
  2. 下载对应的mingw/gcc版本MinGW Builds 7.3.0 (64-bit),解压到合适目录。

设置ClionCmakeLists.txt

  1. 打开Clion,新建一个项目,设置Toolchains,选择mingw解压后的目录。
  2. CmakeLists.txt中输入以下内容,SFML_DIR改成SFML解压后的实际目录,project名字也根据实际情况修改。

    cmake_minimum_required(VERSION 3.16)project(MyProject)set(CMAKE_CXX_STANDARD 17)set(SFML_DIR "YouSFMLPath/SFML-2.5.1/lib/cmake/SFML")find_package(SFML REQUIRED COMPONENTS audio network graphics window system)if (NOT SFML_FOUND)    message(FATAL_ERROR "SFML NOT FOUND!")else()    message("SFML FOUND!")endif()include_directories(${SFML_INCLUDE_DIR})add_executable(MyProject main.cpp)target_link_libraries(CppGenerativeArtistry sfml-audio sfml-network sfml-graphics sfml-window sfml-system)

复制DLL和测试

  1. SFML\bin目录下的所有dll文件复制到clion生成exe的目录,一般是cmake-build-debug
  2. main.cpp中输入以下代码,如果运行成功即OK

    #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;}