【发布时间】:2013-03-25 17:52:02
【问题描述】:
首先,我对 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 的优秀教程,我将不胜感激。官方文档非常庞大......)
【问题讨论】:
标签: c makefile dependencies target