Makefile

简单的Mackfile示例

最简单

hello:
gcc -o hello hello.c

稍微复杂

hello:hello.o
gcc -o hello hello.o

hello.o:
gcc -o hello.o -c hello.c

进一步完善

hello:hello.o
gcc -o hello hello.o

hello.o:
gcc -o hello.o -c hello.c

clean:
rm -rf hello.o  #delete file hello.o

在Mackfile中执行shell命令[@符号:不输出命令本身]

hello:hello.o
gcc -o hello hello.o
@echo "--------------ok------------"

hello.o:
gcc -o hello.o -c hello.c

clean:
rm -rf hello.o  #delete file hello.o

综合[.PHONY:#显示声明伪目标]

.PHONY: clean
main: main.o sub.o add.o
gcc -Wall -g -o main main.o sub.o add.o

main.o: main.c
gcc -Wall -g -o main.o -c main.c

add.o: add.c add.h
gcc -Wall -g -o add.o -c add.c

sub.o: sub.c sub.h
gcc -Wall -g -o sub.o -c sub.c

clean:
rm -f main.o sub.o add.o

执行操作:

  1. make 生成第一个目标
  2. make clean “生成”clean伪目标
  3. make main.o 仅生成main.o目标
  4. make -f Mackfile 显示指定执行的文件名