1

我希望编译$(APPS)的部分目标,但不包括makefile中$(OFF)中的目标:

APPS = a b c d e f g
OFF = d e

all: $(APPS)

partial: $(APPS) - $(OFF)

我怎样才能做到这一点?

4

1 回答 1

1

我可能会采取稍微不同的方法:

ON = a b c f g
OFF = d e
APPS = $(ON) $(OFF)

partial: $(ON)

但是,如果这对于您的需求来说过于简单,那么有一个filter-out函数可以提供您想要的确切操作:

      objects=main1.o foo.o main2.o bar.o
      mains=main1.o main2.o
      $(filter-out $(mains),$(objects))

我认为以这种格式重写您的示例将是:

APPS = a b c d e f g
OFF = c d

partial: $(filter-out $(APPS),$(OFF))
于 2012-07-19T02:04:21.037 回答