Caching 什么是CMake缓存?

Caching 什么是CMake缓存?,caching,cmake,Caching,Cmake,什么是CMake缓存? 我正在阅读cmake手册,偶尔会遇到术语cmake缓存。例如,本段: -C 预加载脚本以填充缓存 当cmake第一次在空生成树中运行时,它会创建一个 CMakeCache.txt文件,并使用可自定义的 这个项目。此选项可用于指定要从中删除的文件 在第一次通过项目的cmake之前加载缓存项 列表文件。加载的条目优先于项目的默认条目 价值观给定的文件应该是包含集合的CMake脚本 使用缓存选项而不是缓存格式文件的命令 这个缓存是什么? 有不同类型的缓存吗? 或者更好的问题是:

什么是CMake缓存?

我正在阅读cmake手册,偶尔会遇到术语cmake缓存。例如,本段:

-C
预加载脚本以填充缓存

当cmake第一次在空生成树中运行时,它会创建一个 CMakeCache.txt文件,并使用可自定义的 这个项目。此选项可用于指定要从中删除的文件 在第一次通过项目的cmake之前加载缓存项 列表文件。加载的条目优先于项目的默认条目 价值观给定的文件应该是包含集合的CMake脚本 使用缓存选项而不是缓存格式文件的命令

这个缓存是什么?
有不同类型的缓存吗?
或者更好的问题是:缓存一般是什么?

此外,缓存的重要性是什么?
处理缓存时是否有某些注意事项?

例如,当您打开“重新启动计算机”时,缓存是否重置?

CMake cache指的是一组持久性变量-保存在生成目录中名为
CMakeCache.txt的文件中。这些选项包括用户可配置选项,这些选项定义了项目的某些行为。例如,您可以在BUILD目录中运行
cmake-D cmake\u BUILD\u TYPE=Release.
,并找到保存在CMakeCache.txt中的变量


CMake只有一种类型的缓存。在首次配置生成后,它被创建并保存到
CMakeCache.txt
中,并且在正常使用下不会自行重置。

CMake在生成文件夹中生成一个
CMakeCache.txt
文件。“CMake缓存?”“你想知道它是什么吗,Neo?…CMake缓存无处不在。它就在我们身边。”所以CMake缓存不应该用来存储包检测数据,因为如果用户安装一个额外的包然后重新运行CMake,这可能会导致过时的值,对吗?我不完全理解这个问题。我相信包检测信息实际上存储在CMake缓存中。如果在CMake脚本中有一个
find_package
语句,并且找到了包,那么这些变量将保存在缓存中。我真正的问题是:如果我运行CMake,然后安装可选的依赖项,然后重新运行CMake,它会检测到包已安装吗?或者我需要手动删除缓存吗?我相信是的,CMake每次都会运行
find_package
命令,如果安装了新的软件包,则会对缓存进行更改。