在 Windows 上使用 CMake 查找 SFML

find SFML with CMake on Windows

我在 windows (MinGW) 上编译了 SFML,发现自己的目录结构包含 bin、include、lib 和一个 cmake/Modules/FindSFML.cmake 文件。

我在CMakeLists.txt中找不到如何使用SFML,是否

find_package(SFML REQUIRED)

find_package(SFML CONFIG REQUIRED)

我使用cmake时得到的是:

CMake Error at CMakeLists.txt:34 (find_package):
  Could not find a package configuration file provided by "SFML" with any of
  the following names:

    SFMLConfig.cmake
    sfml-config.cmake

  Add the installation prefix of "SFML" to CMAKE_PREFIX_PATH or set
  "SFML_DIR" to a directory containing one of the above files.  If "SFML"
  provides a separate development package or SDK, be sure it has been
  installed.

我试过手动设置:

SFML_DIR:PATH=E:/code/libraries/SFML-2.4.0
CMAKE_MODULE_PATH:PATH=E:/code/libraries/SFML-2.4.0

CMAKE_MODULE_PATH:PATH=E:/code/libraries/SFML-2.4.0/cmake/modules

但我没有取得任何进展。

这是为我们提供的分步指南(图片)。完成此操作后,您必须记住您需要 link 将库添加到您的程序中,使用以下行:
target_link_libraries (<Name of project here> sfml-graphics sfml-window sfml-system)
如果你想在 SFML 中使用 audi 库,只需在末尾添加 sfml-audio 等等。 在调试模式下,每个库的末尾应该有一个 -d。像这样 sfml-graphics-d.
如果你在 CMake 中做一些大的改变或者改变你需要添加的项目:
-IC:/dev/libs/SFML/include -LC:/dev/libs/SFML/lib又回来了。 (您可以将文件夹添加到您想要的位置)。 -I是Include文件夹,-L是所有lib文件夹,所有路径前都需要这个字母。
如果你在 linking /bin 文件夹中遇到问题,你可以将所有 .dll 文件放到 System32 文件夹中(对于 64 位,SysWOW64 对于 32 位)。
请记住,有一个匹配 SFML 的 GW。

当我在 cmake-gui 中遇到同样的错误时,我所做的一切 - 添加名称为 "SFMLDIR" 的条目和带有 sfml 目录路径的值。