c++ - 安装 CMake 后,我找不到带有 `find_package` 的包

标签 c++ build cmake libraries

我已经使用以下命令安装了一个库 (SDL):

cmake --build . --target install

我在文档中读到安装包将在 CMAKE_SYSTEM_PREFIX_PATH 中注册。

但是当我打印出变量时它是空的。

目前我使用的是Windows,我在网上看到我应该在注册表中注册安装路径,但它根本没有帮助。

例如,如何使用 find_package() 查找 SDL?

最佳答案

试试这个:

Using the get_cmake_property function the following loop will print out all CMake variables defined and their values:

get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
foreach (_variableName ${_variableNames})
    message(STATUS "${_variableName}=${${_variableName}}")
endforeach()

To print environment variables use CMake's command mode:

execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "environment")

它打印:

-- CMAKE_SYSTEM_PREFIX_PATH=/usr/local;/usr;/;/usr;/usr/local;/usr/X11R6;/usr/pkg;/opt

(致谢Sakra)

您可以在源代码树中搜索名为 FindSDL*.cmake 的文件,然后尝试在您的 CMAKE_SYSTEM_PREFIX_PATH 目录中找到该文件。

如果 CMAKE_SYSTEM_PREFIX_PATH 仍然是空的,请尝试在您的整个计算机中找到 FindSDL*.cmake 以检查文件是否正在某处安装 cmake知道或尝试将此路径附加到您的 CMAKE_SYSTEM_PREFIX_PATH

您还可以查看此链接: Using SDL2 with CMake

关于c++ - 安装 CMake 后,我找不到带有 `find_package` 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50687477/

相关文章:

c - 在 Windows 上使用 Cmake/CLion 编译 lzma 库的一种简单方法?

c++ - 如何在 C++ 中为实例化的模板类编写 header ?

opencv - 在 Windows 上构建 opencv 3.1 - 我在哪里指定 LAPACK 库位置?

CMake 自定义构建步骤 PRE_LINK/PRE_BUILD 不起作用

java - 手动构建并运行 Eclipse 项目

google-maps - 当我包含谷歌地图时,我的构建失败

c++ - 如何在 CMake 中设置 --whole-archive 标志,以便所有依赖项都使用它

C++ 拥有 myMethod(Thing& a) 或 myMethod(Thing a) 之间的确切区别?

c++ - 将 vector append 到 vector 的最佳方法

c++ - 由于进程退出期间的静态变量清理,c++ STL 映射中的段错误查找