linux命令之make

来源:互联网 发布:c语言 用法 编辑:程序博客网 时间:2024/06/17 20:32

make是一种控制编译或者重复编译软件的工具。

可以自动管理软件的编译内容、方式和时机,从而精力放在代码上。

 

一个标号下可以有多行指令,但用make命令只执行第一个标号后内容,编写标号后内容时先按Tab键。

要想调用makefile中其它标号内容,用 make [标号名] 命令。

如下图所示:(其中,set nu命令是 显示行号)


上图是makefile文件中内容,第2到5行是符号替换,下面替换时用 $() 把替换名包起来。第9行@echo表示输出echo后面的内容,只是起到一个执行完标识的作用。用make命令执行start标号后内容。若想执行clean标号后内容,用make clean命令。

 

若同时编译两个.c文件,下述makefile文件写法方便:

.SUFFIXES:.c.o        //.c和.o建立关联

 

CC=gcc

SRCS=hello.c\

        add.c       //同时编译两个.c文件

OBJS=$(SRCS:.c=.o)     //ORJS=hello.o add.o

EXEC=hello

 

start:$(OBJS)         //依赖hello.o add.o

        $(CC) -o $(EXEC) $(OBJS)

        @echo '----------------ok------------'

.c.o:

        $(CC) -o $@ -c $<      //自动根据$(OBJS) 中.o的数量循环编译, 直到编译完所有的.c文件

 

clean:

        rm -f $(OBJS)

 

若修改了其中一个.c文件,则make会自动地只编译修改的.c文件(根据生成.c文件的时间来判断,与相对应的.o文件的时间相比)。
0 0