CMake CMakeLists文件中的“CACHE STRING”是什么意思?

时间:2016-03-19 02:19:41

标签: cmake

我在CMakeLists文件中找到了这句话,我用Google搜索但找不到CACHE STRING这个词的相关资源。

set(CMAKE_BUILD_TYPE Debug CACHE STRING "set build type to debug") 

这是什么意思?而imho,这用起来不是很模糊吗?

1 个答案:

答案 0 :(得分:4)

阅读https://cmake.org/cmake/help/v3.0/command/set.html

  

在CMake中将<variable>设置为值<value>。在<value>设置之前展开<variable>。通常,set会设置一个常规的CMake变量。如果存在CACHE,则<variable>将被置于缓存中,除非它已经在缓存中。有关常规变量和缓存变量及其交互的详细信息,请参阅下面的“CMake中的变量类型”一节。如果使用CACHE,则需要<type><docstring>。 CMake GUI使用<type>来选择用户设置值的小部件。

STRING是变量类型;这只会在显示变量的编辑小部件时影响配置工具。

如果您想使用FORCE覆盖设置,通常会使用此选项;否则你可能不会。

这并不是特别模糊。

NB。 CACHE和普通变量之间的主要区别在于CACHE可以在cmake配置工具中显示为您可以设置的设置(例如,cmake-gui,ccmake)。