首先,我对 GNU Make 不熟悉,所以如果我陈述了一些可笑的错误概念,请纠正它们而不是取笑我,谢谢。
我想要一个默认目标来构建具有不同依赖项的多个可执行文件,但我无法弄清楚。这是我正在使用的一个最小示例:
CC = gcc-4.8
CFLAGS = # some compiler flags
LDFLAGS = # some linker flags
SOURCES = prog1.c prog2.c
OBJECTS = $(SOURCES:.c=.o)
TARGET = prog1 prog2
$(TARGET) : $(OBJECTS)
$(CC) $(CFLAGS) -o prog1 prog1.o $(LDFLAGS)
$(CC) $(CFLAGS) -o prog2 prog2.o $(LDFLAGS)
.PHONY: clean
clean:
@rm -f $(TARGET) $(OBJECTS) core
但是,正如您所看到的,虽然prog2
与 完全无关prog1.c
,但编辑prog1.c
将导致重新链接prog2
. 有什么办法可以防止这种情况发生吗?
(另外,如果有人能指导我学习 GNU Make 的好教程,我将不胜感激。官方文档非常庞大......)