本文共 979 字,大约阅读时间需要 3 分钟。
5分钟做出简单makefile
Makfile就是为了实现自动化编译的。
我们从编写代码到完整运行,首先要编译,就是把源代码编译成中间代码文件,即object 文件。
然后把所需的Object文件进行链接。
编译时要将每个.o文件所需的源文件的位置告诉makefile,然后逐个生成.o文件,继而进行链接,最终生成执行文件。
废话不多说,先看简易版makefile
1.建立一个名为makefile的文件,vim makefile
2.在makefile文件中写入以下内容,保存退出。
sss: qqq.o www.o eee.o //使用三个.o文件最后生成一个名为sss的执行文件
cc -o sss qqq.o www.o eee.o //命令行
qqq.o : qqq.c qqq.h //使用.h,..c生成需要的.o文件
cc -c qqq.c
www.o : www.c www.h
cc -c www.c
eee.o: eee.c eee.h
cc -c eee.c //以上完成一级级简单的依赖关系
clean: //清理时使用
rm -rf *.o
rm sss
3.使用方法:
在终端输入make 回车即自动生成执行文件
在终端输入make clean 将执行clean的两条清理命令进行处理
以上是比较粗浅的方式。当.o文件比较少的时候可以简单的使用,在.o文件比较多,要写的命令比较复杂时我们还可以进行简化,当然啦,显得层次就更加高啦,下面看代码了:
1.还是创建makefile文件
2.在makefile写入以下内容
obj = 1.o 2.o 3.o 4.o 5.o 6.o //将6个.o封装起来
sss: $(obj) //在这里直接使用
cc -o sss $(obj)
1.o: 1.c 1.h
cc -c 1.c
2.o: 2.c 2.h
cc -c 2.c
3.o:3.c 3.h
cc -c 3.c
4.o: 4.c 4.h
cc -c 4.c
5.o: 5.c 5.h
cc -c 5.c
6.o:6.c 6.h
cc -c 6.c
clean:
rm sss $(obj)
3.还是make 和make clean 完成使用操作。
如果是不同文件下的.c,.h,就像/usr..../csx/1.c自行尝试咯
转载地址:https://islet.blog.csdn.net/article/details/70285888 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!