如何使用通配符指定每个源文件对其相应头文件的依赖关系

How to specify the dependency of each source file on its corresponding header file by using wild cards?

本文关键字:文件 关系 依赖 通配符 何使用 源文件      更新时间:2023-10-16

应该是一个简单的makefile问题,但在快速浏览后没有找到解决方案。

基本上我有一堆"cpp"代码,每个代码都有一个具有相同词干名称的相应头文件。我想使用通配符指定每个源文件对其相应头文件的依赖关系。最后一个注释掉的行是我想添加的,显然它没有按预期工作。

SOURCES=a.cpp b.cpp c.cpp
HEADERS=$(SOURCES:.cpp=.h)
OBJECTS=$(SOURCES:.cpp=.o)
$(OBJECTS): %.o: %.cpp
     $(CC) -fPIC -c $< -o $@
#$(OBJECTS): $(HEADERS)

你可以添加这个:

$(OBJECTS): %.o: %.h

或修改您的规则:

$(OBJECTS): %.o: %.cpp %.h
    $(CC) -fPIC -c $< -o $@