CMake:阅读文档并区分字符串输入和var
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMake:阅读文档并区分字符串输入和var相关的知识,希望对你有一定的参考价值。
我试图更好地理解CMake并倾注文档,以便将gRPC移植到窗口,而真正唠叨我的一件事就是如何在文档中区分字符串输入和变量输入。例如,从CMake获取LINK_DIRECTORIES命令。它需要任意数量的目录但单独阅读文档我不清楚我是否可以将字符串变量传递给LINK_DIRECTORIES,一个字符串或任何一个。
例如:如果设置了set(DIR, "/lib");
,则以下哪项有效:
1号
set(DIR, "/lib");
link_directories(DIR)
2号
link_directories(${DIR})
似乎LINK_DIRECTORIES采用字符串而不是变量。我通过编码和运行它找到了,但这种方式大大减慢了我的进度,因为我必须每行进行一次完整性检查。我的理解中缺少什么?
答案
在CMake documentation中,如果参数的名称是“变量”,“列表”或包含单词“变量”,那么您应该通过此参数传递变量的名称。
例子:
- 命令
set
有签名set(<variable> <value> [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])
接受变量名作为第一个参数。 - 命令流
list(LENGTH)
有签名list(LENGTH <list> <output variable>)
接受变量名作为第一个参数(并且此变量被解释为列表)。 - 命令流
string(REGEX MATCH)
有签名string(REGEX MATCH <regular_expression> <output variable> <input> [<input>...])
接受变量名作为fouth参数。
在所有其他情况下,参数只是一个字符串。因此,如果要传递变量的值,则需要使用${}
表示法明确地取消引用此变量。
以上是关于CMake:阅读文档并区分字符串输入和var的主要内容,如果未能解决你的问题,请参考以下文章
阅读Microsoft Word文档时出现Android Apache POI错误:org.apache.xmlbeans.SchemaTypeLoaderException无法解析句柄的类型(代码片
使用 CMake 编译 QTCreator 和 VisualStudio 代码