CMake 与链接
SFML 3 的 CMake 目标名与组件名相对 2.x 必改,工程级优先使用命名空间目标。
find_package 与目标名
Section titled “find_package 与目标名”find_package(SFML 3 REQUIRED COMPONENTS Graphics Audio Network)target_link_libraries(my_app PRIVATE SFML::Graphics SFML::Audio SFML::Network)| v2 Target / Component | v3 |
|---|---|
sfml-system / system |
SFML::System / System |
sfml-window / window |
SFML::Window / Window |
sfml-graphics / graphics |
SFML::Graphics / Graphics |
sfml-network / network |
SFML::Network / Network |
sfml-audio / audio |
SFML::Audio / Audio |
sfml-main / main |
SFML::Main / Main |
- SFML 3 默认
BUILD_SHARED_LIBS为 OFF → 默认编静态库(与 2.x 常见发行包习惯不同)。 - 推荐入门:官方 CMake 项目模板 cmake-sfml-project(从源码拉取 SFML)。
- Linux(X11)新依赖:
libxi-dev(原始鼠标输入);模板还列了 xrandr / xcursor / udev / freetype / flac / vorbis / gl / egl 等。 - 3.1 额外依赖(文本 / 网络):HarfBuzz、SheenBidi、Mbed TLS、libssh2;以及 header-only:cpp-unicodelib、wepoll、qoi。
- 手工 g++ 仍可用
-lsfml-graphics -lsfml-window -lsfml-system(发行包布局);工程级优先 CMake 命名空间目标。
const sf::Version& v = sf::version(); // major/minor/patch, isRelease, string// 与 SFML_VERSION_MAJOR / MINOR 对照相关教程:CMake 入门。