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

http://www.crifan.com/order_make__makefile_in_the_plus__minus_-_and_at_the_meaning_of_numbers/html

在看makefile,其中有些依賴規則中的命令行前面,會有一些減號「-」或者at符號「@」,shell

好比:app

distclean: mrproper
 -rm -f user/tinylogin/applet_source_list user/tinylogin/config.h
spa

對其含義不是很清楚,因此去找了找。命令行

 

【make/makefile中的加號+,減號-和at號@的含義】htm

原先覺得,命令行前面加上減號等作法,是屬於makefile中的規則,blog

就像這裏:get

http://www.cublog.cn/u3/102001/showart_2277987.htmlcmd

說的那樣:table

「有些命令會在開頭加一個’-‘,做用是發生錯誤時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中命令行前面加上加號+】

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

相關文章
相關標籤/搜索