我在游戏中使用 SDL2。我一直使用自定义 FindSDL2.cmake,因为标准 CMake 集中没有。然而,前段时间确实出现了有关 FindSDL2 的帖子。例子:红迪网帖子 https://www.reddit.com/r/opengl/comments/8vgba5/using_sdl_with_cmake/e1n81fj.
如果你的 cmake 足够新并且有 FindSDL2.cmake 文件,你可以这样做:
find_package(SDL2 REQUIRED)
但是当我下载最新的 CMake (3.13.2) 时,它不包括FindSDL2.cmake
.
这是怎么回事?
FindSDL2 从未出现在 CMake 中。
根据拒绝原因拉取请求 #149 https://github.com/Kitware/CMake/pull/149, SDL2 附带一个SDL2Config.cmake
,它提供了一个cmake 包 https://cmake.org/cmake/help/v3.10/manual/cmake-packages.7.html。
的文档find_package https://cmake.org/cmake/help/v3.10/command/find_package.html指出find_package(SDL2)
将表现如下:
- 寻找
FindSDL2.cmake
,如果存在则使用它。 (模块模式)
- 否则,请使用中的信息
SDL2Config.cmake
or sdl2-config.cmake
。 (配置模式)
简而言之,确保您的 SDL2 软件包已安装SDL2Config.cmake
文件,就在你的CMAKE_PREFIX_PATH
。该文档列出了它所查找的确切路径和前缀。
一旦你成功find_package(SDL2)
,以下目标可用于target_link_libraries
:
SDL2::SDL2main
SDL2::SDL2
SDL2::SDL2-static
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)