目录

makefile

一个指定编译规则的脚本。主要对象是C,C++


makefile工作流程


makfile语法

目标: 依赖
        要执行的命令

编译规则

简单例子

main:main.o first.o#这里完全可以不用first.o命名,只要这个目标能生成main目标需要的组件(这里是first.o)就ok了。这里写first.o只是为了直观而已
        gcc main.c first.o -o result.out
first.o:first.c first.h
        gcc -c first.c
clean:
        rm -r main.o first.o result.out

解释

  1. 有目标main,依赖于main.o first.o 。要执行的命令用于产生最终的可执行程序
  2. 有目标first.o,依赖于first.c first.h。要执行的命令用于产生first.o
  3. 有目标chean,用于清除所有的中间文件

高级用法

OBJS=main.o first.o second.o #定义变量
SIGN=1 #定义变量
main:$(OBJS) #使用变量
ifeq ($(SIGN),1) #if 判断
        gcc $(OBJS) -o result
else
        echo hello
endif
midfile:main.o first.o second.o#伪目标,用来检查依赖目标
first.o:first.c first.h
        gcc -c first.c
second.o:second.c second.h
        gcc -c second.c
clean:
        rm -r *.o result