b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

makefile 语法_makefile 不同 后缀_makefile :(4)

电脑杂谈  发布时间:2017-04-11 03:08:34  来源:网络整理

比如,我们声明一个变量,叫objects, OECTS, objs, OS, obj,或是 O,反正不管什么啦,只要能够表示obj文件就行了。我们在makefile一开始就这样定义:

objects = main.okbd.o command.o display.o \

insert.osearch.o files.o utils.o

于是,我们就可以很方便地在我们的makefile中以“$(objects)”的方式来使用这个变量了,于是我们的改良版makefile就变成下面这个样子:

objects = main.o kbd.ocommand.o display.o \

insert.osearch.ofiles.o utils.o

edit : $(objects)

cc-o edit $(objects)

main.o : main.c defs.h

cc-c main.c

kbd.o : kbd.c defs.hcommand.h

cc-c kbd.c

command.o : command.cdefs.h command.h

cc-c command.c

display.o : display.cdefs.h buffer.h

cc-c display.c

insert.o : insert.cdefs.h buffer.h

cc-c insert.c

search.o : search.cdefs.h buffer.h

cc-c search.c

files.o : files.cdefs.h buffer.h command.h

cc-c files.c

utils.o : utils.cdefs.h

cc-c utils.c

clean :

rmedit $(objects)

于是如果有新的 .o文件加入,我们只需简单地修改一下 objects变量就可以了。

关于变量更多的话题,我会在后续给你一一道来。

GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类的命令,因为,我们的make会自动识别,并自己推导命令。

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

objects = main.o kbd.ocommand.o display.o \

insert.osearch.o files.o utils.o

edit : $(objects)

cc-o edit $(objects)

main.o : defs.h

kbd.o : defs.hcommand.h

command.o : defs.hcommand.h

display.o : defs.hbuffer.h

insert.o : defs.hbuffer.h

search.o : defs.hbuffer.h

files.o : defs.hbuffer.h command.h

utils.o : defs.h

.PHONY : clean

clean :

rmedit $(objects)

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


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40627-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...