makefile实验二 对目标的深入理解 以及rebuild build clean的实现

 

实验一中说到一个点,这里再提一遍:

  make软件总是认为目标是对应文件的 

好,接下来进行本次实验:

CC := gcc
Target := helloworld.out

$(Target) : func.o main.o
    $(CC) -o $(Target) main.o func.o

main.o : main.c
    $(CC) -c main.c -o main.o
func.o : func.c
    $(CC) -c func.c -o func.o

.PHONY : rebuild clean build

rebuild : clean build

build : $(Target)
#    @echo "build"    
clean :
#    @echo "clean"
    rm *.o $(Target)

 

问: 如果把这两处改为main2.o,  修改后的makefile和修改之前,在执行效果上,将有什么变化??

makefile实验二 对目标的深入理解 以及rebuild build clean的实现

 

 

答:(答案见下图中文字)

makefile实验二 对目标的深入理解 以及rebuild build clean的实现

修改前,目标main.o是存在的,本地的main.o也是存在的,

这时候还要看目标main.o的依赖main.c, 发现main.c也没被修改过,

所以make时,提示:Nothing to be done for 'build'

 

makefile实验二 对目标的深入理解 以及rebuild build clean的实现

 

上一篇:Maven Failed to read artifact descriptor for *


下一篇:Maven实战 1