shell-Makefile

/*fun.h*/

#include <stdio.h>
extern int max_fun(int x, int y);

 

/*fun.c*/

 

#include "fun.h"

int max_fun(int x, int y)
{
 if( x >= y)
  return x;
 else
  return y;
}

 

/*main.c*/

 

#include "fun.h"

int main()
{
 int a, b;
 printf("Please enter the number a and b\n");
 scanf("%d%d",&a,&b);
 int max=0;
 max=max_fun(a, b);
 printf("The max number is %d\n",max);
 return 0;
}

 

 

一个简单的C函数

 

gcc main.c fun.c -o main  -Wall

 

 

 

Makefile1 最基本的

main:main.o fun.o
 gcc main.o fun.o -o main
main.o:main.c fun.c
 gcc -c main.c  -o main.o
fun.o:fun.h fun.c
 gcc -c fun.c -o fun.o
clean:
 rm -r main #.o

 

Makefile2 使用变量

 

 

OBJS=main.o fun.o
CC=gcc
CFLAGS=-c
main:$(OBJS)
 $(CC) $(OBJS) -o main
main.o:main.c fun.c
 $(CC) $(CFLAGS) main.c -o main.o
fun.o:fun.c fun.h
 $(CC) $(CFLAGS) fun.c -o  fun.o
clean:
 rm -f main *.o

 

Makefile3 自动变量

 

 

OBJS=main.o fun.o
CC=gcc
CFLAGS=-c
main:$(OBJS)
 $(CC) $^ -o $@
main.o:main.c fun.h
 $(CC) $(CFLAGS) $< -o $@
fun.o:fun.c fun.h
 $(CC)  $(CFLAGS) $< -o $@
clean:
 rm -f main *.o

 

Makefile4 隐式规则

 

OBJS=main.o fun.o
CC=gcc
CFLAGS=-c
main:$(OBJS)
 $(CC) $^ -o $@

clean:
 rm -f main *.o

 

Makefile5  模式规则

 

OBJS=main.o fun.o
CC=gcc
CFLAGS=-c
main:$(OBJS)
 $(CC) $^ -o $@

%.o:%.c
 $(CC) $(CFLAGS) $< -o $@

clean:
 rm -f main  *.o

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值