逃离$美元签到CMake

时间:2015-04-11 23:48:20

标签: cmake escaping post-build-event dollar-sign

我试图通过以下方式在CMake 3.1.1中运行post build命令:

ADD_CUSTOM_COMMAND(
   TARGET mytarget
    POST_BUILD
    COMMAND for i in `ls *` \; do echo \$i \; done \; 

然而,虽然我逃脱了美元符号,但$ i变量被评估为空。根据日志,命令被评估为:

for i in `ls *` ; do echo  ; done ; 

我试图没有逃避美元符号,但它导致了同样的问题。双斜线也没有效果。现在我感到困惑......

你能建议一种运行使用美元符号的命令的方法吗?

P.S。这只是一个例子。我的实际命令稍微复杂一些,我不认为我可以在不使用美元符号的情况下解决问题。

1 个答案:

答案 0 :(得分:7)

你应该使用' make'双美元符号的风格逃脱:

ADD_CUSTOM_COMMAND(
   TARGET mytarget
    POST_BUILD
    COMMAND for i in `ls *` \; do echo $$i \; done \;
)

相关链接:

https://www.gnu.org/software/make/manual/html_node/Variables-in-Recipes.html

https://www.mail-archive.com/cmake@cmake.org/msg11302.html