如何在makefile的依赖项中编写"or"?

How to write "or" inside dependencies in makefile?

本文关键字:or makefile 依赖      更新时间:2023-10-16

如何写入"或"依赖项内的依赖项,我需要检查.c和.cpp:

SOURCES=$(wildcard $(SRC)/*.cpp) $(wildcard $(SRC)/*.c)
myTarget: $(SOURCES:.cpp||.c=.o)
         g++ ...

它不起作用,您可以在这种情况下使用"或"?

看起来您正在使用GNU制造。如果是,则可以使用两个函数subst的调用。

INTERMEDIATE=$(subst .cpp,.o,$(SOURCES))
OBJECTS=$(subst .c,.o,$(INTERMEDIATE))
myTarget:$(OBJECTS)

如果您不想使用INTERMEDIATE,则可以使用:

OBJECTS=$(subst .c,.o,$(subst .cpp,.o,$(SOURCES)))