gpt4 book ai didi

CMake列表字符串: simple semicolon replacement

转载 作者:行者123 更新时间:2023-12-04 09:34:28 28 4
gpt4 key购买 nike

我对一个非常简单的例子感到困惑。我有一个标准列表,因此基本上它的字符串表示形式使用分号作为分隔符。我想用另一个替换它:

set(L1 "A" "B" "C")
message("L1: ${L1}")

string(REPLACE ";" "<->" L2 ${L1})
message("L2: ${L2}")

该代码段显示:
L1: A;B;C
L2: ABC

我不明白为什么。根据 to some other SO answers,我的字符串替换似乎有效。我究竟做错了什么 ?有没有一种方法可以将值 A<->B<->C存储在我的第二个变量中?

注意:我使用CMake 3.7.2

最佳答案

只需将${L1}放在引号中:

set(L1 "A" "B" "C")
message("L1: ${L1}")

string(REPLACE ";" "<->" L2 "${L1}")
message("L2: ${L2}")

否则,该列表将再次扩展为以空格分隔的参数列表。

引用
  • cmake: when to quote variables?
  • 关于CMake列表字符串: simple semicolon replacement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43137036/

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