小编Ika*_*kok的帖子

Makefile每次都重建一切,为什么?

我这里有简单的makefile:

SOURCES= $(wildcard *.c)
OBJECTS= $(patsubst %.c, %.o, $(SOURCES))
NAMES= $(patsubst %.c, %, $(SOURCES))
CC=gcc
CFLAGS= -Wall -c -o     
TASKS_IN_DIRS= $(addprefix obj/,$(OBJECTS)) $(addprefix bin/,$(NAMES))

all: $(NAMES)

$(NAMES): %: %.o $(OBJECTS)
    $(CC) -o bin/$@ obj/$^
$(OBJECTS): %.o: %.c 
    $(CC) $(CFLAGS) obj/$@ $<
clean:
    rm -rf $(TASKS_IN_DIRS)
Run Code Online (Sandbox Code Playgroud)
  1. 获取所有c文件名称.
  2. 从它们制作简单的名称(没有扩展名)和对象名称.
  3. 做事

重要的是 - 一切正常,但每次我打印make(编译和链接所有文件)都有效.即使我没有改变任何东西,而且我连续几次这样做,依赖关系出了什么问题?

我期待像"blabla是最新的"之类的东西.

makefile

2
推荐指数
2
解决办法
1244
查看次数

标签 统计

makefile ×1