簡體   English   中英

無法執行makefile中目標的所有先決條件

[英]Unable to execute all prerequisites for a target in makefile

我一直在嘗試對makefile中的特定目標執行所有先決條件。 但是只要前提條件是具有單個/多個信息值的目標,我就會發現其他前提條件沒有執行(在基於“信息”的目標之后)

我嘗試將前提條件中的值中的信息數量減少到僅1.。在這種情況下,我也找不到其他要執行的前提條件。 因此,我的問題是了解如何執行基於單行/多行信息的先決條件並繼續執行其他先決條件。

# Define new line and separator
.PHONY:newline
newline:
    @echo 

.PHONY:separator
separator:
    $(info -------------------------------)

# Print the project details
.PHONY:project
project:
    $(info Project Details)
    $(info Author  : xyz)

# Help menu 
.PHONY:help
help: newline separator project separator newline 



Expected outcome 
$ make help

-------------------------------
Project Details
Author  : xyz
-------------------------------

Outcome received

$ make help

-------------------------------
Project Details
Author  : xyz

在制作過程中,每個目標最多只能執行一次配方。 因此,請不要這樣做,這是非常非常錯誤的。

另外, $(info ...)是文本替換,在同一配方中的任何外部命令之前執行,因此將其與echo混合通常是一個壞主意。

如果您想避免重復長虛線,則始終可以使用變量進行此操作:

sep := --------------------
define nl :=


endef

...

help:
    $(info $(nl)$(sep))
    $(info Project details)
    ...
    $(info $(sep)$(nl))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM