在Linux中,Makefile是一种用来自动化编译和链接程序的工具。它可以根据程序的依赖关系来自动判断需要重新编译的文件,并生成可执行文件。
下面是一个简单的Makefile的例子:
CC=gcc
CFLAGS=-c -Wall
all: hello
hello: main.o hello.o
$(CC) main.o hello.o -o hello
main.o: main.c
$(CC) $(CFLAGS) main.c
hello.o: hello.c
$(CC) $(CFLAGS) hello.c
clean:
rm -rf *.o hello
上述Makefile中的关键部分包括:
CC
:编译器的名称,可根据需要更改为其他编译器,如clang
;
CFLAGS
:编译选项,例如-c
表示编译为目标文件,-Wall
表示开启所有警告;
all
:默认的目标,即执行make
命令时,默认执行的目标;
hello
:生成可执行文件的目标,依赖于main.o
和hello.o
;
main.o
和hello.o
:分别表示main.c
和hello.c
文件的目标文件,依赖于对应的源文件;
clean
:清理生成的目标文件和可执行文件。
使用Makefile时,只需在终端中进入Makefile所在目录,并执行make
命令即可开始编译和链接程序。执行make clean
命令可以清理生成的目标文件和可执行文件。