是否有人拥有可以执行以下操作的完整makefile:
我已经看到了有关说明如何使make工具了解 header 依赖性的说明,但是这些说明中没有一个提供了与实际示例相似的内容。一个简单的示例如下:main.cpp C1.cpp C1.h C2.cpp C2.h
最佳答案
CXX = g++
OBJECTS := main.o C1.o C2.o
all: $(OBJECTS)
%.o : %.cpp
$(CXX) $(CPPFLAGS) -Wall -MMD -c $< -o $@
-include *.d
编辑:如TobySpeight所指出的,如果您构建目标文件,重命名或删除先决条件源文件或头文件之一,然后尝试重建目标文件,则此操作无效。
.d
文件仍将需要缺少的文件,并且构建将失败。我忽略了处理这种情况的内容:%.h: ;
%.cpp: ;
(这是有效的,但很粗糙。更精确的方法是将一些sed命令放入
%.o
规则中,以便向.d
文件中添加特定的空规则,每个先决条件一个,但是sed命令很丑陋,并且该方法以上几乎适用于所有情况。)关于c++ - 标题更改时用于构建简单C项目重新编译的示例makefile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21871426/