簡體   English   中英

如何在makefile中將參數傳遞給目標?

[英]How to pass argument to target in makefile?

我想通過傳遞要刪除的二進制文件來清理我的目錄。 在我的目錄中是這些文件:

foo.c foo.o foo

我想刪除foo.ofoo 現在在我的 makefile 中,我有這個:

clean:
   rm *.o
   rm [...] #the [...] should be the argument

所以我想運行make clean foo ,這里的foo將是傳遞給clean目標的參數。 我讀的地方,正確的方法應該是簡單地讓vairable $(BINARIES)的makefile文件里面,並使用該變量rm命令,但后來我想每次我想編譯的另一個二進制時間要編輯的變量。 所以相反,我想將該二進制文件作為參數傳遞給clean目標。 怎么做? (而且,我不想執行make喜歡make ARGS=foo clean ,這是太長了,我想要的3個字。1)請,2)目標,3))的說法。

GNU Make 的概要是make [OPTION]... [TARGET]... ,所以我懷疑你唯一的選擇是

  1. 查找或實現一些其他的make可執行文件來實現你想要的概要,

  2. 使用make ARGS=foo clean語法,或

  3. 使用像模式規則這樣的黑客:

     clean-%: echo $(@:clean-%=%)

    使用make clean-foo調用它,它去除“clean-”前綴並打印“foo”。

暫無
暫無

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

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