Vya*_*lav 5 escaping cmake dollar-sign post-build-event
我正在尝试通过以下方式在CMake 3.1.1中运行post build命令:
ADD_CUSTOM_COMMAND(
TARGET mytarget
POST_BUILD
COMMAND for i in `ls *` \; do echo \$i \; done \;
Run Code Online (Sandbox Code Playgroud)
但是,虽然我逃脱了美元符号,但$ i变量被评估为空.根据日志,命令被评估为:
for i in `ls *` ; do echo ; done ;
Run Code Online (Sandbox Code Playgroud)
我试图没有逃避美元符号,但它导致了同样的问题.双斜线也不起作用.现在我很困惑......
你能建议一种运行使用美元符号的命令的方法吗?
PS这只是一个例子.我的实际命令稍微复杂一些,我认为如果不使用美元符号我就无法解决问题.
您应该使用带有双美元符号的'make'样式转义:
ADD_CUSTOM_COMMAND(
TARGET mytarget
POST_BUILD
COMMAND for i in `ls *` \; do echo $$i \; done \;
)
Run Code Online (Sandbox Code Playgroud)
相关链接:
https://www.gnu.org/software/make/manual/html_node/Variables-in-Recipes.html
https://www.mail-archive.com/cmake@cmake.org/msg11302.html
使用括号引用:
ADD_CUSTOM_COMMAND(
TARGET mytarget
POST_BUILD
COMMAND [=[for i in `ls *`; do echo $i; done]=]
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3927 次 |
最近记录: |