gpt4 book ai didi

cmake - 如何正确地将 CMake 标志列表(分号分隔)传递给 set_target_properties?

转载 作者:行者123 更新时间:2023-12-01 16:30:27 25 4
gpt4 key购买 nike

CMake 列表本质上只是以分号分隔的字符串,但如果将这样的变量传递给命令,它确实会扩展为多个参数 - 例如,

set(FLAGS f1 f2 f3)
# now FLAGS == 'f1;f2;f3'
add_custom_command(
...
COMMAND my_cmd ${FLAGS}
...
)

将正确调用my_cmd f1 f2 f3

现在如果我这样做

set_target_properties(
myTarget PROPERTIES
LINK_FLAGS "${LD_FLAGS}"
)

扩展没有发生,我最终得到一个包含分号的LD_FLAG - 无用,而不是将其扩展为空格分隔的字符串。

是否有任何方法可以使当我将列表传递给 LINK_FLAGS 属性(或任何属性)时,它会扩展为多个参数,而不仅仅是一个?

最佳答案

我认为 set_target_properties 不能自动进行扩展,但您可以使用 string (REPLACE ...) 将列表扩展为空格分隔的字符串:

string (REPLACE ";" " " LD_FLAGS_STR "${LD_FLAGS}")
set_target_properties(
myTarget PROPERTIES
LINK_FLAGS "${LD_FLAGS_STR}"
)

关于cmake - 如何正确地将 CMake 标志列表(分号分隔)传递给 set_target_properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594905/

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