http://www.crifan.com/order_make__makefile_in_the_plus__minus_-_and_at_the_meaning_of_numbers/
在看makefile,其中有些依賴規則中的命令行前面,會有一些減號“-”或者at符號“@”,
比如:
distclean: mrproper
-rm -f user/tinylogin/applet_source_list user/tinylogin/config.h
對其含義不是很清楚,所以去找了找。
【make/makefile中的加號+,減號-和at號@的含義】
原先以為,命令行前面加上減號等做法,是屬於makefile中的規則,
就像這里:
http://www.cublog.cn/u3/102001/showart_2277987.html
說的那樣:
“有些命令會在開頭加一個’-‘,作用是發生錯誤時Makefile繼續”
后來才知道,原來這個做法,其實是Linux中的Shell中的規則,具體含義為:
http://www.kuqin.com/aixcmds/aixcmds3/make.htm
shell 命令
每個目標都可以具有與其關聯的一系列 shell 命令,這些命令通常用來創建目標。此腳本中的每一條命令都必須以制表符開始。雖然任何目標都能夠顯示在相關性行上,但除非使用 :: 操作符,否則這些相關性中只有一個能夠通過創建腳本來跟隨。
如果命令行的第一個或前兩個字符是 @ (at 符號)、-(連字符)和 +(加號)這幾個符號之一或全部,那么將特別處理該命令,如下:
@ | 使命令在被執行前不被回顯。 |
- | 使任何命令行的任何非零退出狀態都被忽略。 |
+ | 使命令行可以通過指定 -n、-q 或 -t 選項來執行。 |
所以,簡單的說就是:
【make中命令行前面加上減號】
就是,忽略當前此行命令執行時候所遇到的錯誤。
而如果不忽略,make在執行命令的時候,如果遇到error,會退出執行的,加上減號的目的,是即便此行命令執行中出錯,比如刪除一個不存在的文件等,那么也不要管,繼續執行make。
【make中命令行前面加上at符號@】
就是,在make執行時候,輸出的信息中,不要顯示此行命令。
而正常情況下,make執行過程中,都是會顯示其所執行的任何的命令的。如果你不想要顯示某行的命令,那么就在其前面加上@符號即可。
【make中命令行前面加上加號+】
對於命令行前面加上加號+的含義,目前還是不是很清楚。