0

根据标题,CMake无法通过s宏找到SFML我使用 Microsoft 的vcpkg工具安装的。CMakefind_package()

我已验证SFML已安装在已vcpkg安装目录 ( ~\vcpkg\installed\x86-windows) 中。

此外,我还在文件vcpkg中包含了工具链CMakeSettings.json文件。

具体错误是:

CMake Error at ~\CMakeLists.txt:40 (find_package):
Could not find a package configuration file provided by "SFML" (requested
    version 2.4.2) with any of the following names:

 SFMLConfig.cmake
 sfml-config.cmake

CMakeSettings.json(简化 - 仅调试配置):

"name": "x86-Debug",
"generator": "Visual Studio 15 2017",
"configurationType": "Debug",
"buildRoot": "${projectDir}\\build\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-m -v:minimal",
"variables": [
    {
        "name": "CMAKE_TOOLCHAIN_FILE",
        "value": "C:\\Microsoft\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake"
    }
]

CMakeLists.txt(也简化):

cmake_minimum_required(VERSION 3.6)
project(Tempus)
add_subdirectory(src)

# Fails at this step
find_package(SFML 2.4.2 REQUIRED system window graphics)

include_directories(${SFML_INCLUDE_DIR})

add_executable(Tempus ${SRC})
target_link_libraries(Tempus ${SFML_LIBRARIES})

我不认为我错过了什么。SFML提供了一个findSFML.cmake应该vcpkg通过工具链文件自行处理的内容(假设我已经正确理解了他们的文档)。我肯定错过了什么?

4

1 回答 1

0

它似乎vcpkg提供了文件和其他包括和链接的东西,但不提供findSFML.cmake文件。一旦它可以找到SFML,它就会设置所有的CMake SFML宏和常量。通过findSFML.cmake手动将文件添加到CMake模块目录,它解决了我的问题。

感谢@Tsyvarev 的提示,让我找到了解决方案。

我将与团队跟进vcpkg以了解它是否应该如何工作,并可能要求他们也将其添加到他们的文档中。

于 2017-08-03T09:14:14.060 回答