我试图通过以下方式在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。这只是一个例子。我的实际命令稍微复杂一些,我不认为我可以在不使用美元符号的情况下解决问题。
答案 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