/*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