[英]Why doesn't bash/echo work in this CMake script?
我的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”部分復制到“ things”中,然后粘貼到外殼中,它將運行良好
I made 3 things
“ / bin / sh:1”前綴表明正在使用“ echo ...”作為其命令運行外殼程序 ,而我嘗試將“ echo”更改為“ bash echo”,那么為什么這樣做不起作用?
/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found
該錯誤消息表示某人正在嘗試執行一個命令,該命令的字面意思是空格和刻度,並echo I made `ls /foo/bar | wc -l` things
echo I made `ls /foo/bar | wc -l` things
。
因此,看起來cmake
正在將整個報價字符串作為可執行文件傳遞。 刪除外引號應該可以解決該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.