还有81天!
连续两天都不想写笔记了,这两天都在学makefile,内容太多,没时间搞lua,这篇先存着了
今天把makefile综合了一下,老师布置了一道题,下面是题目以及解法:
1、有如下文件,分别位于3个不同的文件中 adir/:a.h a.c bdir/:b.h b.c main/:main.c bin/:
(1)分别在3个文件中编写makefile,
(2)总控makefile在当前目录中
(3)生成的可自行文件放在bin目录中
首先新建四个目录
mkdir adir bdir main bin
其次在各个目录下添加.c文件和.h文件并给他们加上初始代码
这里演示省略b文件(与a一样)
touch a.c a.h
a.h:#include <stdio.h>
a.c:#include "a.h"
main.c:#include <stdio.h>
int mian()
{
printf("Hello");
return 0;
}
接着给各个目录写上makefile文件
adir/makefile:
test : a.o
#生成一个a.o文件并移动到main文件夹下
mv a.o ../main/
#给a.o添加依赖,a.c由于隐晦规则省略
a.o : a.h
main/makefile
test : main.bin
#把main.bin移动到bin目录下
mv main.bin ../bin/
#给main.bin添加依赖
mian.bin : main.c a.o b.o
#对main.c a.o b.o编译生成main.bin文件
gcc -o main.bin main.c a.o b.o
最后在主目录下写全局makefile文件
all :
#移动到下级目录并执行make命令
cd adir && $(MAKE)
cd bdir && $(MAKE)
cd main && $(MAKE)
#指向删除命令
clean:
cd bin && rm main.bin
cd main && rm a.o b.o
题目不难,但是把这两天的makefile的功能综合了一下,明天是学习makefile的最后一天,之后就是网络编程了。