make,makefile,shell中的加號+,減號-和at號@的含義

原文地址:https://www.cnblogs.com/leaven/p/4337628.html

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中命令行前面加上加號+】

對於命令行前面加上加號+的含義,目前還是不是很清楚。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章