makefile

46 篇文章 1 订阅

1.介绍

    make命令执行的时候一定需要一个Makefile文件,通过这个Makefile告诉make命令需要怎么样的去编译和链接程序。make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。

2.Makefile规则

target... : prerequisites ...
	command
	 ...
	 ...

注意:command和定格是一个Tab键(这是规定)

  • target:是目标文件,即生成的文件,可以是Object File,也可以是执行文件,也可以是标签。
  • prerequisites:要生成那个target所需要的文件或是目标,是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件。
  • command:也就是make需要执行的命令。(任意的Shell命令)

注意:make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的话,那么make就会执行command。

3.举例

(1)add.h文件

int add(int, int);

(2)add.c文件

#include"add.h"
int add(int a, int b){
  return a + b;
}

(3)minus.h文件

int minus(int,int);

(4)minus.c文件

#include"minus.h"
int minus(int a, int b){
return a - b;
}

新建Makefile文件;

第一版Makefile

main: main.c  add.o minus.o
        gcc -Wall  -o main main.c add.o minus.o
add.o: add.c add.h
        gcc -Wall -c add.c -I ./
minus.o: minus.c minus.h
        gcc -Wall -c minus.c -I ./
clean:
        rm -rf *.o main

第二版 替换的内容前加“$”符号,并用括号括起来:

OBJ = main.c  add.o minus.o
CC = gcc
main: $(OBJ)
        $(CC) -Wall  -o main $(OBJ)
add.o: add.c add.h
        $(CC) -Wall -c add.c -I ./
minus.o: minus.c minus.h
        $(CC) -Wall -c minus.c -I ./
clean:
        rm -rf *.o main

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值