【问题标题】:find SFML with CMake on Windows在 Windows 上使用 CMake 查找 SFML
【发布时间】:2016-10-08 13:33:56
【问题描述】:

我在 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

但我没有任何进展。

【问题讨论】:

  • 这个答案有帮助吗? stackoverflow.com/a/39126731/2799037
  • 请添加您的 cmake 调用。为什么要加cmake/modules?为什么是 CMAKE_MODULE_PATH 而不是 CMAKE_PREFIX 路径?

标签: cmake sfml


【解决方案1】:

这是我们提供的分步指南(图片)。完成此操作后,您必须记住您需要将库链接到您的程序,使用以下行:
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/libback。 (您可以在需要的位置添加文件夹)。 -Iis 用于 Include 文件夹,-Lis 用于所有 lib 文件夹,所有路径前都需要此字母。
如果您在链接 /bin 文件夹时遇到问题,您可以将所有 .dll 文件放入 System32 文件夹(对于 64 位,SysWOW64 对于 32 位)。
请记住,有一个匹配 SFML 的 GW。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-02-25
      • 1970-01-01
      • 2015-10-19
      • 2022-09-27
      • 2018-03-05
      • 2021-11-13
      • 2018-01-22
      • 1970-01-01
      • 2019-08-04
      相关资源
      最近更新 更多