【发布时间】:2018-11-14 04:42:21
【问题描述】:
我已经使用以下命令安装了一个库 (SDL):
cmake --build . --target install
我在文档中读到安装的软件包将在CMAKE_SYSTEM_PREFIX_PATH 中注册。
但是当我打印出变量时它是空的。
目前我用的是windows,网上看到应该在注册表中注册安装路径,但是一点用都没有。
如何使用 find_package() 找到例如 SDL?
【问题讨论】:
-
目前我正在使用 windows 有时这意味着你必须告诉它在哪里查看。我使用提供 CMake 变量的批处理文件和环境变量来强制它选择我想要的版本。虽然这部分是由于我使用了超过 1 个版本的 Visual Studio 并结合了 32 位和 64 位的构建。
-
查看 CMAKE_PREFIX_PATH,例如,stackoverflow.com/a/41909627/2799037
-
我检查了它,但它没有按我的意愿工作。我在包注册表中添加了
SDL2 2.0.8 : T:\installed\2.0.8\CMake,但是当我想包含 SDL2 包时,它说没有 FINDSDL2.cmake,尽管在本教程中github.com/Wigner-GPU-Lab/Teaching/tree/master/CMake/… 作者也没有查找脚本。 -
我在 Windows 上安装和尝试使用 Google Benchmark 时遇到了同样的问题 - 为了解决这个问题,我使用了 CMAKE_PREFIX_PATH,所以我使用的命令是
cmake -DCMAKE_PREFIX_PATH="C:\Program Files" -G "Visual Studio 15 2017 Win64" ..我认为它应该可以在没有但显然不是。我将继续挖掘,因为 CMake 确实将 Benchmark 安装到了正确的位置,所以它一定是某个地方的默认值! :P