为了避免自己编译SFML
,选择下载编译好的SFML
,但这个时候必须选择和SFML
完全一样的toolchain
版本。
SFML
和MingW
下载SFML for GCC 7.3.0 MinGW (SEH) - 64-bit,解压到合适目录。
下载对应的mingw/gcc
版本MinGW Builds 7.3.0 (64-bit),解压到合适目录。
Clion
和CmakeLists.txt
打开Clion
,新建一个项目,设置Toolchains
,选择mingw
解压后的目录。
在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(MyProject sfml-audio sfml-network sfml-graphics sfml-window sfml-system)
DLL
和测试把SFML\bin
目录下的所有dll
文件复制到clion
生成exe
的目录,一般是cmake-build-debug
在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;
}