Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CMake命令行上覆盖CMakeLists.txt中的默认变量?_Cmake - Fatal编程技术网

如何在CMake命令行上覆盖CMakeLists.txt中的默认变量?

如何在CMake命令行上覆盖CMakeLists.txt中的默认变量?,cmake,Cmake,我有一个.cmake文件,其中包含变量的默认值。使用“include”从CMakeLists.txt调用.cmake文件。 其中一个变量是版本号。 从CMake命令行否决该可变版本号的最佳实践或设置是什么 在gnu make中,您可以使用 var?=价值 您可以在make命令行上设置var值。我在C-Make中没有看到类似的内容。对于布尔值,您可以使用选项: option(CUSTOMIZABLE_VAR "This variable do stuff" "default-value") 此外

我有一个.cmake文件,其中包含变量的默认值。使用“include”从CMakeLists.txt调用.cmake文件。 其中一个变量是版本号。 从CMake命令行否决该可变版本号的最佳实践或设置是什么

在gnu make中,您可以使用 var?=价值
您可以在make命令行上设置var值。我在C-Make中没有看到类似的内容。

对于布尔值,您可以使用
选项:

option(CUSTOMIZABLE_VAR "This variable do stuff" "default-value")
此外,GUI应用程序还公开了CMake GUI或QtCreator等选项,您将获得一个描述和一个字段来编辑它

对于字符串类型的值,可以使用帮助字符串设置缓存值:

set(CUSTOMIZABLE_VAR "8" CACHE STRING "This option is a string")

通过在选项行中指定…“5”默认值,然后调用CMake-DCUSTOMIZABLE_VAR=6,变量将获得值6。没关系。在CMake命令行中未指定-DCUSTOMIZABLE_VAR时,变量的值为“OFF”,而不是“5”。@BaudewijnVermeire-oups抱歉,我误读了文档。选项用于布尔值。否则,可以使用缓存变量。我更新了答案