c++ - 使用 Hunter 构建 SDL2
问题描述
我正在尝试使用 Hunter 包管理器包含 SDL2。
hunter_add_package(sdl2)
find_package(SDL2 CONFIG REQUIRED)
包已下载,但未定义包含目录,所以这没有任何作用
include_directories(${SDL2_INCLUDE_DIR})
并且编译失败,尝试#include SDL。
如果我使用 brew install sdl2 手动安装 SDL2、fx,并手动设置包含路径和链接库,一切正常。但我希望它可以使用包管理器工作。
的 cmake 。命令确实显示以下内容,不确定其相关:
-- [hunter] SDL2_ROOT: /Users/martin/.hunter/_Base/9b96c37/6b5f9d6/aceec4e/Install (ver.: 2.0.7-p3)
CMake Warning (dev) at CMakeLists.txt:24 (find_package):
Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
CMake variable SDL2_ROOT is set to:
/Users/martin/.hunter/_Base/9b96c37/6b5f9d6/aceec4e/Install
Environment variable SDL2_ROOT is set to:
/Users/martin/.hunter/_Base/9b96c37/6b5f9d6/aceec4e/Install
For compatibility, CMake is ignoring the variable.
This warning is for project developers. Use -Wno-dev to suppress it.
使用 cmake 。-Wno-dev 确实使警告消失,但仍然没有运气找到包含。
任何提示表示赞赏。
解决方案
是的,该警告非常相关。您应该将 CMP0074 策略设置为 NEW 行为:
cmake_policy(SET CMP0074 NEW)
这将使其尊重SDL_ROOT
变量提供的设置。
推荐阅读
- python - 使用 python selenium 的 execute_script() 的 ScrollHeight 大小返回不变的结果
- java - 广播接收器未触发
- ruby-on-rails - Why does the object id change following failed validations in a rails controller?
- angular - Intellij IDEA 导入错误的 RxJS 类
- python-3.x - Python3:这两个关于整数除法的计算有什么区别
- python - Python 3 Upgrade: uninstall/reinstall 3.6-3.7 — Now I cannot install Django 2.1: Error msg: [ No module named Django ]
- reactjs - Create Custom prop which calls a function React Native
- stanford-nlp - StanfordNLP OpenIE:获取最佳三元组以匹配演示
- jupyter - Jupyter 笔记本数据保存在哪里?
- ios - Pagination until the end