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

make怎么用?

    来源: 互联网  发布时间:2014-10-27

    本文导语:  除了用man make之外,谁能给我一些文档。先谢了。 |如何使用make? 在shell的提示符号下,若键入"make",则它会到目前的目录下找寻Makefile这个档案 。然後依照Makefile中所记录的步骤一步一步的来执行。在...

除了用man make之外,谁能给我一些文档。先谢了。

|
如何使用make? 在shell的提示符号下,若键入"make",则它会到目前的目录下找寻Makefile这个档案 。然後依照Makefile中所记录的步骤一步一步的来执行。在我们写程式的时候,如果 事先就把compiler程式所需要的步骤先写在Makefile中的话,想要compiler程式的时候 就只要打入make的指令。只要程式无误的话,就可以获得所需要的结果了! Makefile的格式: (1)注解:         在Makefile中,任何以"#"为开头的的文字皆为注解,make在解译Makefile的         时候会忽略它。 (2)续接下行:         在Makefile中,若一行不足以容纳该命令的时候。可於该行之最後加一反斜线         ()表示下一行为本行之延续,两行应视为一行来处理。 (3)巨集(macro)         巨集的格式为:  =          例如:                 CFLAGS = -O -systype bsd43         其实make本身已有许多的default的macro,如果要查看这些macro的话,可以         下make -p的命令。 (4)法则(Rules)         格式如下:         :                                                    ....         :                                                    .... (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键)。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 有关make all; make clobber; make depend; make debug 的区别?
  • 我要缩减LINUX内核,make menuconfig时把一些选项去掉,再make dep没错,但再make bzImage时却会提错,但我make menuconfig时不改变任何选现(
  • 我已经用make clean编译成功了内核但是在make moduals时候处错误,然后又make menuconfig,我还需要make zImage吗?
  • make perl 模块的时候出错,make: *** No rule to make target,帮忙看看,谢谢。
  • 如何写出兼容于BSD MAKE、GNU MAKE、SOLARIS MAKE的条件编译Makefile?
  • 在solaris8.0我装了make3.81,下载了make-3.81-sol8-sparc-local.gz,为什么不能在任何目录下输入make?
  • 怎样验证自己的make是不是GNU的make?
  • 问一个很低级的问题:怎样卸载用make;make install方法安装的软件?
  • configure make make install 新手问题...
  • cygwin make操作,出现no rule to make target all
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc'
  • make zImage和make modules等问题请教~
  • debian下安装bind用./configure时提示安装bind时./configure提示whether make sets $(MAKE)... no
  • 第一次写make文件,报makefile:2: *** missing separator. Stop.错,make文件只有两行
  • make kernel make gcc
  • 50分的问题!make文件找不到? You don't seem to have 'make' or 'gmake' in your PATH
  • make;make install放在script裡
  • make oldconfig 和 make defconfig有何区别?
  • 求linux下 ./configure;make;make install一系列命令的详解
  • make -f makefile 时提示 Make: Must be a separator on rules line 5. Stop. 为什么,makefile 如下


  • 站内导航:


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

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

    浙ICP备11055608号-3