您的位置:首页 > 博客中心 > 网络系统 >

【Linux 学习笔记】关于Makefile

时间:2022-04-03 11:41

前一章体验了一把Linux环境下的C语言编程。


不像Windows下,VS中一键F5看结果,保存个代码万事大吉。


其实,在Linux环境下才能真正体会到,从printf(“hello world”); 到 屏幕上出现这么一行小字,计算机经历了多少不为人知的辛酸历程。


复习一下,首先,将c代码进行编译,产生.o目标文件,再将一个或者多个目标文件进行链接,生成一个可执行文件。


首先看一下,熟悉基本概念:

http://www.linuxidc.com/Linux/2014-08/105304.htm


网上看了许多关于makefile的教程,刚开始似懂非懂,直到找到了这篇某大神写的博客,醍醐灌顶。


makefile学习(一):

基本概念,建议先看(二),回头再看(一)更有收获

http://blog.csdn.net/xgsilence/article/details/23593483

makefile学习(二):

对于依赖关系的检索说的很清晰,我是看了他的文章才理解什么是嵌套式检索:

http://blog.csdn.net/xgsilence/article/details/26951361


还发现了比上一篇转载 更好的基本操作汇总:

http://blog.csdn.net/xgsilence/article/details/18733267


这篇有一些对宏的解释,看了些代码,感觉很常用的样子,可以学一学:

http://www.cnblogs.com/vamei/archive/2013/04/29/3051062.html



看了以上教程,差不多也明白makefile是个什么作用了:

makefile是教练,所有的球员都是c代码,球员上场以前都要先热身,所以c代码都要先编译一下,然后教练告诉你怎么配合怎么打。


接下来,不想看链接的可以看我哔哔几句:

上一章中我们写了“加减乘除”四个函数,并且把声明放进了math.h头文件中,在main.c中我们包含了头文件,并且调用了这四个函数。


这里我们简化一下:

A.c

技术分享


B.c

技术分享


head.h

技术分享技术分享


main.c

技术分享技术分享


现在有   A.c     B.c     head.h     main.c   这四个文件


接下来就要写makefile文件,把这四个文件联系在一起


键入 vi  makefile

录入如下程序:

技术分享技术分享


保存后退出,键入make

技术分享

过程大概是这样:

计算机收到要make一个hello执行文件的指令,于是去找make它要哪些原料,首先我们需要一个main.o,一看自己兜里没有,于是就去找,找到了“main.o:"这个DIY说明书,一看要做main.o首先要有main.c,一看兜里有一个main.c,编译一下~于是输出第一句话:

技术分享技术分享

这样main.o就做好了,看看菜谱,下一个原料是A.o,操作是把A.c腌制(编译)一下,于是一通操作:

技术分享技术分享

数数看main.o   A.o   B.o  原料就位!下锅!

技术分享技术分享

热气腾腾的hello就做出来了!


执行一下

技术分享技术分享

完美!!


看看我们的目录下都生成了写啥?

键入ls

技术分享技术分享


酒足饭饱,打扫卫生!

键入  make clean

技术分享技术分享

回归到了原来的样子。


这时我们打开

makefile学习(一):

http://blog.csdn.net/xgsilence/article/details/23593483

再看看基本概念。


技术分享技术分享

一图流。


相信走过这个流程之后,应该对最最基础的Linux操作有了一定的了解。



PS:  吐槽一下插图功能。。。之前做的很多图由于直接复制粘贴都黑喂狗了。

热门排行

今日推荐

热门手游