如何在makefile中编写“或”内部依赖项,我需要同时检查.c和.cpp:

SOURCES=$(wildcard $(SRC)/*.cpp) $(wildcard $(SRC)/*.c)

myTarget: $(SOURCES:.cpp||.c=.o)
         g++ ...

它不起作用,在这种情况下你能用“或”吗?

最佳答案

看起来你在用GNU make。如果是,可以使用函数subst的两个调用。

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

myTarget:$(OBJECTS)

如果不想使用INTERMEDIATE,可以使用:
OBJECTS=$(subst .c,.o,$(subst .cpp,.o,$(SOURCES)))

关于c++ - 如何在makefile中的依赖项中写入“或”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44743704/

10-11 18:00