gpt4 book ai didi

escaping - 为什么 CMake 在执行命令时在空格前加上反斜杠?

转载 作者:行者123 更新时间:2023-12-04 03:59:51 25 4
gpt4 key购买 nike

我在 CMakeLists.txt 中有一个自定义命令:

set(testfiles "test1 test2")
add_custom_target(testtouch COMMAND touch ${testfiles})

当我运行“make testtouch VERBOSE=1”时,我看到它执行:
touch test1\ test2

这只是一个例子,但我在一个真实的项目中遇到了这个问题,“\”正在破坏命令。请注意,我从 Find 脚本中获取变量(此处为 testfiles),并且不能去掉双引号。

为什么 CMake 这样做?

如何避免呢?

最佳答案

因为有时 cmake 列表变量类型和 cmake 字符串文字之间的区别变得很重要。

尝试将变量设置更改为以下内容以避免出现此问题:

set(testfiles "test1" "test2")

关于escaping - 为什么 CMake 在执行命令时在空格前加上反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925396/

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