gpt4 book ai didi

CMake设置函数

转载 作者:行者123 更新时间:2023-12-02 21:24:38 27 4
gpt4 key购买 nike

我正在尝试从a tutorial学习CMake 。我不太清楚这个 set 函数是如何工作的。

set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions)

根据CMake文档:

set(<variable> <value> [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])

如果在此特定情况下变量为 EXTRA_LIBS,值为 ${EXTRA_LIBS},则 CACHEMathFunctions >?

正确吗?

最佳答案

该命令尝试执行的操作是将字符串附加到 EXTRA_LIBS 中已存储的任何值。 MathFunctions 。 p>

分解:

set(VARNAME VALUE)

将变量VARNAME设置为字符串VALUE。请注意,您可以将多个值分配给单个变量,这将有效地分配 a list value到变量:

set(VARNAME VALUE1 VALUE2 VALUE3)

要稍后访问该变量的值,您有 to dereference it using ${} ,如

 message(${VARNAME})

如果分配的值是一个列表,您可能需要access the different elements separately相反:

 foreach(element ${VARNAME})
message(${element})
endforeach()

您问题中的命令在一行中取消引用旧值并分配新值。

the list command 提供了执行相同作业的更具描述性的方法。 :

list(APPEND EXTRA_LIBS MathFunctions)

相关说明:请注意,附加到列表和字符串连接之间存在细微差别:

set (EXTRA_LIBS "${EXTRA_LIBS} MathFunctions")

此命令不是追加,而是为变量分配一个新的单一字符串值,该值等于先前值与字符串 MathFunctions 的串联。

关于CMake设置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com