在Windows上使用CMake查找SFML

时间:2016-10-08 13:33:56

标签: cmake sfml

我在Windows上编译了SFML(MinGW)并找到了一个包含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

但我没有取得任何进展。

2 个答案:

答案 0 :(得分:2)

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

Step by step guide

information

What to include

flags

答案 1 :(得分:0)

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