仅做复习笔记备查
主目录随意定义,子目录:sub
文件共3个:all.c;add.c;minus.c;
主目录:
All.c
子目录(sub):
add.c;minus.c;
文件内容分别入下:
All.c内容:
#include <stdio.h>
int main(void)
{
int a=8;
int b=3;
printf("a= %d b=%d \n",a,b);
int sum =add(a,b);
printf("a+b= %d \n",sum);
int cha=minus(a,b);
printf("a-b=%d\n",cha);
return 0;
}
Add.c内容:
int add(int a,int b)
{
int result;
result=a+b;
return result;
}
Minux.c内容:
int minus(int a,int b)
{
int result;
result=a-b;
return result;
}
Makefile内容:
#找出当前目录和子目录所有.c文件
src=$(wildcard *.c ./sub/*.c)
#去掉目录
dir=$(notdir $(src))
//替换所有.c文件为 .o文件
obj=$(patsubst %.c,%.o,$(src))
//生产的目标文件名
target=op
//默认打印相关变量内容:
all:
@echo $(src)
@echo $(dir)
@echo $(obj)
@echo "end"
//编译目标和相关依赖及编译选项
build:$(target)
$(target):$(obj)
$(CC) -o $(target) $(obj)
//清除相关的.o文件
.PHONY:clean
clean:
rm -rf all $(obj)
make :默认打印相关变量路径
make build : 在主目录生产一个”op”文件
make clean: 清除编译过程的.o文件
运行(./op)结果如下:
a= 8 b=3
a+b= 11
a-b=5
./op > out1
cat out1
即可以文件凡是查看输出结果.