【Linux 学习笔记】关于Makefile

本文介绍了在Linux环境下使用Makefile进行C语言编程的过程,通过学习理解makefile的基本概念和作用,详细阐述了如何编写和使用Makefile将源代码编译链接成可执行文件。文章引用了多个博客资源,帮助读者逐步掌握Makefile的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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


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


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


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

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


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


makefile学习(一):

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

http://blog.youkuaiyun.com/xgsilence/article/details/23593483

makefile学习(二):

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

http://blog.youkuaiyun.com/xgsilence/article/details/26951361


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

http://blog.youkuaiyun.com/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.youkuaiyun.com/xgsilence/article/details/23593483

再看看基本概念。



一图流。


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



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值