我的CMakeLists.txt正确构建my_target
。
我尝试将此虚拟命令添加为试用后构建步骤:
ADD_CUSTOM_COMMAND (
TARGET my_target POST_BUILD
COMMAND "echo I made `ls ${MY_DIR} | wc -l` things")
当我运行make my_target
时,
/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found
如果我将部件从“echo”复制粘贴到“thing”中,它就可以正常运行
I made 3 things
“/ bin / sh:1”前缀表示shell 是以“echo ...”作为命令运行,我尝试将“echo”更改为“bash echo”那么为什么这不起作用?
答案 0 :(得分:0)
/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found
错误消息意味着某些东西正在尝试执行一个名为“{1}}的空格和刻度”的命令。
所以看起来echo I made `ls /foo/bar | wc -l` things
将整个报价字符串作为可执行文件传递。删除外部引号应该可以解决这个问题。