五、让make自动推导

来源:互联网 发布:软件培训计划 编辑:程序博客网 时间:2024/05/29 15:09
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。 

只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。我们的是新的makefile又出炉了。 


    objects = main.o kbd.o command.o display.o \ 
              insert.o search.o files.o utils.o 

    edit : $(objects) 
            cc -o edit $(objects) 

    main.o : defs.h 
    kbd.o : defs.h command.h 
    command.o : defs.h command.h 
    display.o : defs.h buffer.h 
    insert.o : defs.h buffer.h 
    search.o : defs.h buffer.h 
    files.o : defs.h buffer.h command.h 
    utils.o : defs.h 

    .PHONY : clean 
    clean : 
            rm edit $(objects) 

这种方法,也就是make的“隐晦规则”。上面文件内容中,“.PHONY”表示,clean是个伪目标文件。 

关于更为详细的“隐晦规则”和“伪目标文件”,我会在后续给你一一道来。 
原创粉丝点击