Makefile依賴關係中的豎線「 」

2021-07-24 07:27:34 字數 1075 閱讀 3398

近日在閱讀乙個makefile的時候發現乙個依賴關係中有豎線「|」的寫法,

網上搜尋無果,於是自己檢視了一下makefile的info檔案,其中解釋如下:

target : prerequisites  

[tab]command1

[tab]command2

[tab]...

[tab]commandn

其中的[tab]就是鍵盤上的tab鍵,不可以用空格替代,這些makefile的常識,這裡就不贅述。

makefile.info中 4.3 types of prerequisites中介紹了兩種型別的前提目標(prerequisites)

原文翻譯如下:

事實上make工具能理解兩種型別的前提目標:

type i: 正常前提目標(normal prerequisites)

正常前提目標能達成兩個目的:

影響build command執行順序,即:在生成目標(target)的命令被執行前,所有的需要生成的前提目標(prerequisites)的命令都需要被執行。

影響依賴關係,即:如果任何乙個前提目標(prerequisites)比生成目標(target)新時,生成目標都將被認為太舊而需要被重新生成。

通常,上面的這兩個目的正是你所需要的:當前提目標更新時,生成目標也需要更新。

type ii: 命令前提目標(order-only prerequisites)

偶爾的,我們會遇到這樣的情況:我們需要執行某個或某些規則,但不能引起生成目標被重新生成。
此時你就需要使用命令前提目標。命令前提目標由乙個管道符號即豎線「|」指示,位於前提目標列表中。

豎線左邊的目標就是正常前提目標,豎線右邊的目標就是命令前提目標,形式如下:

target : normal-prerequisites

|order

-only

-prerequisites

豎線左邊的正常前提目標列表可以是空。

注意:如果前提目標中同時存在正常前提目標和命令前提目標,則正常前提目標優先生成。

UML中的依賴關係

uml中的五種關係和設計模式中的 實現.又重新聽了一遍uml中的關係.感覺又是收穫很大.uml中的關係有依賴,關聯 聚合,組合 泛化 也叫繼承 實現 現在乙個乙個的來實現 一 依賴 依賴關係圖 他的意思就是use a 用到的意思,兩個類的 中不體現 看 c 但是在 中不體現,怎麼反映他們之間的依賴關...

RDD中的依賴關係

1.有shuffle 2.父rdd的乙個分割槽會被子rdd的多個分割槽所依賴 父一對多 1.沒有shuffle 2.父rdd的乙個分割槽只會被子rdd的1個分割槽所依賴 一對一 窄依賴 spark可以對窄依賴進行優化 合併操作,形成pipeline 管道 同乙個管道中的各個操作可以由同乙個執行緒執行...

sql中完全依賴,部分依賴,傳遞依賴關係

以學生表的幾個簡單例子介紹一下,說明 sno 學生學號 sname 學生姓名 sdept 學生所在院系 cno 課程號 grade 課程成績 mname 系主任名字 1.完全依賴 乙個學號就可以決定乙個學生姓名 將決定用 表示 sno sname,這樣就叫做sname完全依賴於sno,同樣還有sno...