北京金同方计算机培训,考试认证
当前位置:中招首页 -> IT培训 -> 国外认证 -> Linux认证 -> 经验交流 -> 
如何使用make

2005-11-15 15:10:11 来源:未知
  在shell的提示符号下,若键入"make",则它会到目前的目录下找寻Makefile这个档案。然後依照Makefile中所记录的步骤一步一步的来执行。在我们写程式的时候,如果事先就把compiler程式所需要的步骤先写在Makefile中的话,想要compiler程式的时候就只要打入make的指令。只要程式无误的话,就可以获得所需要的结果了!  Makefile的格式:  (1)注解:  

在Makefile中,任何以"#"为开头的的文字皆为注解,make在解译Makefile的时候会忽略它。  
  百事特软件编程课程 JAVA软件开发专业
  java2语言核心技术 平面设计师就业班

(2)续接下行:  

在Makefile中,若一行不足以容纳该命令的时候。可於该行之最後加一反斜线()表示下一行为本行之延续,两行应视为一行来处理。  

(3)巨集(macro)  

巨集的格式为:  string  =  value  

例如:  

CFLAGS  =  -O  -systype  bsd43  

其实make本身已有许多的default的macro,如果要查看这些macro的话,可以下make  -p的命令。  

(4)法则(Rules)  

格式如下:  

:  depend  





....  

:  depend  





....  

(5)一个非常简单的Makefile  

假设我们有一个程式,共分为下面的部份:  

menu.c  主要的程式码部份  

menu.h  menu.c的include  file  

utils.c  提供menu.c呼叫的一些function  calls  

utils.h  utils.c的include  file  

同时本程式亦叫用了ncurses的function  calls。  

而menu.c和utils.c皆放在/usr/src/menu下。  

但menu.h和utils.h却放在/usr/src/menu/include下。  

而程式做完之後,执行档名为menu且要放在/usr/bin下面。  

#  This  is  the  Makefile  of  menu  

CC  =  gcc  

CFLAGS  =  -DDEBUG  -c  

LIBS  =  -lncurses  

INCLUDE  =  -I/usr/src/menu/include  

all:  clean  install  

install:  menu  

chmod  750  menu  

cp  menu  /usr/bin  

menu:  menu.o  utils.o  

$(CC)  -o  $@  $?  $(LIBS)  

menu.o:  

$(CC)  $(CFLAGS)  -o  $@  menu.c  $(INCLUDE)  

utils.o:  

$(CC)  $(CFLAGS)  -o  $@  utils.c  $(INCLUDE)  

clean:  

-rm  *.o  

-rm  *~  

在上述的Makefile中,要使用某个macro可用$(macro_name)如此的形式。make会自动的加以展开。  

$@为该rule的Target,而$?则为该rule的depend。  若在command的前面加一个"-",表示若此command发生错误则不予理会,继续执行下去。  上述的Makefile的关系可以表示如下:  

all  

/  

clean  install  

menu  

/  menu.o  utils.o  

若只想清除source以外的档案,可以打make  clean。  

若只想做出menu.o可以打make  menu.o。  

若想一次全部做完,可以打make  all或是make。  

要特别注意的是command之前一定要有一个TAB(即TAB键)。  

 
   关键词  >>Linux认证
 
新世纪电脑培训学校
北京新华电脑学校
百事特教育学院
金同方计算机学校
北大燕工教育研究院
中科院计算所培训中心

  ■ 最新推荐课程

 ·长城平面设计师就业专修课程  ·育人电脑组装维修培训课程  ·新科海三维设计师就业班课程
 ·中科院JAVA软件工程师培训课程  ·中科院计计算机网络系统集成  ·千禧艺海高级三维室内装潢设计
 ·金同方高级文秘助理实战课程  ·科华时代 3ds max设计师课程  ·北京交通大学日语软件工程师
相关文章
 ·Novell Linux认证工程师(CLE)
 ·Linux认证考试
 ·Linux认证
 ·xIT-Linux认证-考试心得-bell-
 ·选择Linux认证的N个理由
论坛热贴
 【发表评论】
 昵称:
 内容:
 
 【最新评论】 更多...
中招在线版权与免责声明:
① 凡本站注明“稿件来源:中招在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明"稿件来源:中招在线",违者本站将依法追究责任。
② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。
热 点 聚 焦
Google
   
精 彩 推 荐
免费下载Firefox,改进网页浏览
免费下载相片软件整理你的照片
·新科海平面设计师就业课程
·新科海软件测试工程师课程
·理工百事特软件编程课程
·百事特装饰装潢设计师课程
·J2EE Struts及XML编程技术
·千禧艺海影视后期特效课程
·JAVA软件开发专业课程
·清华万博1+6网络技术总监
·中科院企业VI平面广告课程
·中科院VC++ 6.0/VC++.Net
 
本周院校排行榜
最新资源排行榜
 
 
关于中招 - 广告服务 - 网站建设 - 版权声明 - 联系我们 - 英才加盟 - 网站地图 - 友情链接 - 免责声明 - 设为首页
Copyright @ 2005-2008 zhongzhao.com All Rights Reserved.
中招在线 版权所有