在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
命令可以清理生成的目标文件和可执行文件。