簡體   English   中英

為什么bash / echo在此CMake腳本中不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM