簡體   English   中英

如何將 append 到 Makefile 中的變量列表?

[英]How to append to a list of variables in a Makefile?

我正在嘗試為以下項目結構編寫 Makefile

/project
  Makefile
  main.cpp
  test.hpp
  /a
    s1.cpp 
    s1.hpp 
    s2.cpp 
    s2.hpp
  /b
    s1.cpp 
    s1.hpp 
    s2.cpp 
    s2.hpp
  /c
    s1.cpp 
    s1.hpp 
    s2.cpp 
    s2.hpp

我有 3 個包含 .cpp 和 .hpp 文件的文件夾,我想在 INC 變量中將所有 hpp 文件放在一起

DIRS = ./a ./b ./c
INC = $(wildcard *.hpp) # how to have here ./a/s1.hpp ./a/s2.hpp ./b/s1.hpp ./b/s2.hpp etc...?

INC 只抓取 Makefile 目錄而不是子目錄中的.hpp 文件。 如何自動指定子目錄中的所有標題? 感謝您的提示。

wildcard function 采用多種模式。 后綴addsuffix為列表中的每個單詞附加一個后綴。 所以:

INC = $(wildcard $(addsuffix /*.hpp,$(DIRS)))

應該做你想做的。 還有其他方法,例如:

INC = $(foreach d,$(DIRS),$(wildcard $(d)/*.hpp))

或者,如果您有find實用程序並想在任何深度的任何子目錄中查找所有*.hpp文件(不僅僅是在$(DIRS)中):

INC = $(shell find . -type f -name '*.hpp')

最后一種形式可能會更好,因為您不需要提供目錄列表。

暫無
暫無

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

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