码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile学习(2)简化Makefile

时间:2017-03-24 20:36:57      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:并且   play   utils   files   学习   cts   自己   多个   sea   

从上一节来看Makefile,这玩意儿真的好冗余,所以我们需要进行一些新的简化(当然这个是make这个工具已经集成好的,我们只需要学会调用就好了)

一,使用变量。

  我们在上一节的例子中可以看到多个.o文件的重复,好麻烦,能不能声明一个变量替代一批的.o文件啊?当然要是每个都要替换的话,那就没有意思了,只能说能够批量替换,比如:使用file=A.o B.o C.o D.o这句话进行声明,那么之后统一要用A.o B.o C.o D.o这四个.o文件的话,那么久直接用$(file)进行替代就好了。

二,make自动推导

  我们都知道A.o的生成依赖于A.c,那么如果我们建立默认规则,并让程序遵守,我们是不是就可以避免了那一步所有的A.o、B.o都需要重新声明并且指出依赖文件了呢?很巧,make就是这么做的,它会根据目的.o文件找到源文件,所以就避免了咱们自己去写依赖了,结果就是,如果另外需要.h文件,声明即可,否则,就不必声明了。给个例子:

  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

   clean :
           rm edit $(objects)
最后一句clean的意思就是清除之前生成的.o文件以及可执行文件。
另外,大家一定要记着所有的命令之前一定是Tab,博主用的是Ubuntu,Tab是八个空格。。。。。。具体其他的编译器,希望大家自己查一下资料。

Makefile学习(2)简化Makefile

标签:并且   play   utils   files   学习   cts   自己   多个   sea   

原文地址:http://www.cnblogs.com/cfxtby/p/6613206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!