当前位置:  技术问答>linux和unix

各位高手,我想请问unix下的makefile文件具体该如何写,请大家各抒自见,参加者有分,欢迎大家提供有益线索和经验! 越详细越好!!

    来源: 互联网  发布时间:2015-05-11

    本文导语:  各位高手,我想请问unix下的makefile文件具体该如何写,请大家各抒自见,参加者有分,欢迎大家提供有益线索和经验!!!      越详细越好!!! | 26 $(CC) $(CFLAGS) S o $*.s $.depend  44 gc...

各位高手,我想请问unix下的makefile文件具体该如何写,请大家各抒自见,参加者有分,欢迎大家提供有益线索和经验!!!

     越详细越好!!!

|
26 $(CC) $(CFLAGS) S o $*.s $.depend 
44 gcc -MM $(patsubst %.o,%.c,$(PROGS_O)) >>.depend 
45 
46 include .depend 

  范例一是笔者的cshow程式的makefile,其中01至05行以#开头作为注解用; 
07至 14行是设定变数,其中07-10所设定的是有关编译器及其命令,11至14行则设 
定被编 译的档案名称及额外需被连结的程式库名称;第16行便是一个依存规则, 
若是我们在 命令列下只打make,那make便会去寻找makefile中的第一个规则来工 
作,在此这便是 第一个规则,但这个规则比较特殊:一、本规则并无「命令」, 
二、本规则中的all 并不是档名,而且其後的progs是下一条规则(第18行)的「目 
标档」,这样一来,当 我们一去make all时,由於all是由progs所构成,因此会 
跳到第18行去,而第18行 的$(PROGS)是cshow,为做本make最终产生的档案,为一 
可执行档,第20行的cshow.o 便是最终的目的档,那cshow和cshow.o又是如何产生 
的?这和第22、25、28行有关, 这几行是利用下一节的「字尾规则」,稍後再论 
。 

  范例一中第32和35行是makefile中另外常见的规则,其目的不是「产生」目的 
档 ,而是去「删除」某些档案,35行的动作包含在32之中,35行的目的是删除可 
执行档 (rm -f $(PROGS));而32行会先执行35行的动作,再去删除*.o和*~的档 
;若是我 们更新了一大群source的部份时,最好要make clean,否则仍会发生. 
o和其source 间版本不同的错误。 

字尾规则 
  通常我们会以特定的字尾来表示不同档案的种类,如.c 便是代表c语言的原始 
档 , 而.o 通常代表此档经特定的编译程式所产生的目的档,由於在同一系统中 
同一语 言原始档的编译程式皆相同,我们便可为这些原始档定出一定的编译方式 
,这便是字 尾规则(Suffix rule)的用意所在,字尾规则通常是在於定义 
Makefile的内建依存 规则;字尾规则的语法如下: 

.字尾一.字尾二: 
    命令 

  其中的意义是字尾一的档案经「命令」的作用後产生字尾二的档案,如范例一 
中 的第22和23行: 

22 .c.o: 
23 $(CC) $(CFLAGS) -c -o $*.o $

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。 iis7站长之家
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3