Skip to content

Make使用

一个简单的Makefile例子:

CC=gcc
CFLAGS=-Wall

all: program

program: main.o func1.o func2.o
    $(CC) $(CFLAGS) -o program main.o func1.o func2.o

main.o: main.c
    $(CC) $(CFLAGS) -c main.c

func1.o: func1.c
    $(CC) $(CFLAGS) -c func1.c

func2.o: func2.c
    $(CC) $(CFLAGS) -c func2.c

clean:
    rm -f *.o program

这个Makefile指定了一个叫做program的可执行文件的构建规则。它由三个源文件main.cfunc1.cfunc2.c组成。

CCCFLAGS是Makefile的变量,分别指定编译器和编译选项。all是一个伪目标,用于指定默认的构建目标。

program目标依赖于main.ofunc1.ofunc2.o三个目标。make将检查每个目标是否需要重新构建,如果需要,它会运行指定的命令来生成目标文件。最终,program目标将通过链接这三个目标文件来生成可执行文件。

clean是一个伪目标,用于删除所有生成的目标文件和可执行文件。