2015-04-12 71 views
0

我的CMakeLists.txt正確構建了my_target爲什麼不在這個CMake腳本中使用bash/echo?

我嘗試添加該虛擬指令作爲審判後生成步驟:

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 

如果我複製粘貼的部分從「回聲」到「東西」變成一個運行良好的外殼

I made 3 things 

「/ bin/sh:1 「前綴暗示一個外殼正在以」echo ...「作爲其命令運行,並且我嘗試將」echo「改爲」bash echo「,所以爲什麼這不起作用?

回答

0
/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found 

錯誤消息意味着什麼正試圖執行被稱爲,從字面上命令,用空格和蜱,echo I made `ls /foo/bar | wc -l` things

所以它看起來像cmake傳遞您的整個報價字符串作爲可執行文件。刪除外部引號應該可以解決這個問題。

相關問題