前言
在Linux,如果我们写了一个包含多个文件的大型工程,因为包含了太多文件,我们不可能对其一一编译(这会对我们造成很大困扰,尤其是对代码修改后),而make/makefile就能帮我们解决这个问题。
一、make/makefile是什么?
``make是一个命令工具,可以解释makefile中指令的命令工具;makefile是一个文件,make是一条命令,两者搭配使用。
二、使用步骤
1.编写makefile实例代码
代码如下(C):
test:test.o
gcc test.o -o test
test.o:test.s
gcc -c test.s -o test.o
test.s:hello.i
gcc -S test.i -o test.s
test.i:test.c
gcc -E test.c -o test.i
.PHONY.clean
clean:
rm -f test.i test.s test.o test
依赖关系
目标文件:被依赖文件
gcc 【选项】 被依赖文件 -o 目标文件
如:上面的文件test依赖test.c。
上面的代码也可以改进为
test:test.o
gcc $^ -o $@
test.o:test.s
gcc -c $< -o $@
test.s:hello.i
gcc -S $< -o $@
test.i:test.c
gcc -E $< -o $@
.PHONY.clean//伪目标,总是被执行
clean:
rm -f test.i test.s test.o test
$@:依赖关系中的目标文件
$^:依赖关系中的被依赖文件列表(多个被依赖文件时使用)
$<:依赖关系中的一个被依赖文件
2.make命令的使用
make:自动编译makefile中的文件
make clean:执行clean下的命令,删除文件。
总结
make/makefile是专门针对大型工程所使用的工具,一个make命令可以让整个工程自动编译,可以极大提高软件开发的效率。