【发布时间】:2013-10-20 21:45:17
【问题描述】:
示例如下:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
据我了解,此规则查找所有 c 源文件 *.c 并将它们编译为目标文件 *.o。当我只想将我的文件编译成目标文件时,如何定义“全部”规则?
另外,如果我想构建一个可执行文件,我该如何破坏链接规则?比如:
TARGET = bsort
CPPFLAGS = -g -Wall
LFLAGS =
all: $(TARGET)
$(TARGET): ???
$(CC) $(LFLAGS) %.o -o $(TARGET)
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
所以,我尝试使用模式规则创建两个 makefile,一个 makefile 编译为目标文件,另一个 makefile 构建为可执行文件。我的项目通常有多个源文件和头文件。
【问题讨论】:
标签: makefile