📄 00000000.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: NextStep (NeXT~计划中...), 信区: Linux <BR>标 题: Make user <BR>发信站: BBS 水木清华站 (Wed Sep 17 09:31:30 1997) <BR> <BR>如何使用make? <BR> <BR>在shell的提示符号下,若键入"make",则它会到目前的目录下找寻Makefile这个档案 <BR>。然後依照Makefile中所记录的步骤一步一步的来执行。在我们写程式的时候,如果 <BR>事先就把compiler程式所需要的步骤先写在Makefile中的话,想要compiler程式的时候 <BR>就只要打入make的指令。只要程式无误的话,就可以获得所需要的结果了! <BR> <BR> <BR> <BR> <BR>Makefile的格式: <BR> <BR>(1)注解: <BR> 在Makefile中,任何以"#"为开头的的文字皆为注解,make在解译Makefile的 <BR> 时候会忽略它。 <BR> <BR>(2)续接下行: <BR> 在Makefile中,若一行不足以容纳该命令的时候。可於该行之最後加一反斜线 <BR> (\)表示下一行为本行之延续,两行应视为一行来处理。 <BR> <BR>(3)巨集(macro) <BR> 巨集的格式为: <string> = <value> <BR> 例如: <BR> CFLAGS = -O -systype bsd43 <BR> <BR> 其实make本身已有许多的default的macro,如果要查看这些macro的话,可以 <BR> 下make -p的命令。 <BR> <BR>(4)法则(Rules) <BR> 格式如下: <BR> <Target 1>: <depend> <BR> <command 1> <BR> <command 2> <BR> .... <BR> <BR> <Target 2>: <depend> <BR> <command 3> <BR> <command 4> <BR> .... <BR> <BR>(5)一个非常简单的Makefile <BR> 假设我们有一个程式,共分为下面的部份: <BR> menu.c 主要的程式码部份 <BR> menu.h menu.c的include file <BR> utils.c 提供menu.c呼叫的一些function calls <BR> utils.h utils.c的include file <BR> 同时本程式亦叫用了ncurses的function calls。 <BR> 而menu.c和utils.c皆放在/usr/src/menu下。 <BR> 但menu.h和utils.h却放在/usr/src/menu/include下。 <BR> 而程式做完之後,执行档名为menu且要放在/usr/bin下面。 <BR> <BR># This is the Makefile of menu <BR>CC = gcc <BR>CFLAGS = -DDEBUG -c <BR>LIBS = -lncurses <BR>INCLUDE = -I/usr/src/menu/include <BR> <BR>all: clean install <BR> <BR>install: menu <BR> chmod 750 menu <BR> cp menu /usr/bin <BR> <BR>menu: menu.o utils.o <BR> $(CC) -o $@ $? $(LIBS) <BR> <BR>menu.o: <BR> $(CC) $(CFLAGS) -o $@ menu.c $(INCLUDE) <BR> <BR>utils.o: <BR> $(CC) $(CFLAGS) -o $@ utils.c $(INCLUDE) <BR> <BR>clean: <BR> -rm *.o <BR> -rm *~ <BR> <BR> <BR>在上述的Makefile中,要使用某个macro可用$(macro_name)如此的形式。make会自动 <BR>的加以展开。 <BR>$@为该rule的Target,而$?则为该rule的depend。 <BR>若在command的前面加一个"-",表示若此command发生错误则不予理会,继续执行下去。 <BR>上述的Makefile的关系可以表示如下: <BR> all <BR> / \ <BR> clean install <BR> \ <BR> menu <BR> / \ <BR> menu.o utils.o <BR> <BR>若只想清除source以外的档案,可以打make clean。 <BR>若只想做出menu.o可以打make menu.o。 <BR>若想一次全部做完,可以打make all或是make。 <BR>要特别注意的是command之前一定要有一个TAB(即TAB键)。 <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 162.105.184.91] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -