Linux-makefile

Makefile的好处:自动化编译
Makefile的一般写法:

test(目标文件): prog.o code.o(依赖文件列表)
tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
......

一个Makefile文件主要含有一系列的规则,每条规则包含以下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”;一个或多个以来文件的列表,通常是编译慕白噢文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab键开头,(初学者注意,是Tab而不是空格)

示例Makefile:

test: prog.o code.o
    gcc prog.o code.o -o test
prog.o: prog.c code.h
    gcc -c prog.c -o code.o
code.o: code.c code.h
    gcc -c code.c -o code.o
clean:
    rm -f *.o test

Makefile定义宏,改写上面的Makefile文件:

OBJS = prog.o code.o
CC = gcc
test: $(OBJS)
    $(CC) prog.o code.o -o test
prog.o: prog.c code.h
    $(CC) -c prog.c -o code.o
code.o: code.c code.h
    $(CC) -c code.c -o code.o
clean:
    rm -f *.o test

执行以上Makefile文件后就会自动化编译:

$ make
gcc -c prog.c -o prog.o
gcc -c code.c -o code.o
gcc prog.o code.o -o test

最后就会产生prog.o code.o test这三个文件。

猜你喜欢

转载自blog.csdn.net/wake_me_up123/article/details/78712301