我在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
但我没有取得任何进展。
答案 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。
答案 1 :(得分:0)
当我在cmake-gui中遇到同样的错误时,我所做的一切 - 添加了名为“SFMLDIR”的条目和带有sfml目录路径的值。