打印
[STM32MP1]

Linux 之 Makefile 从入门到放弃全解

[复制链接]
864|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2022-3-3 19:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
缘起
  最近,本人在移植 U-Boot 时,需要查看及修改 U-Boot 的 Makefile。由于之前对于 Makefile 可以说是一知半解,之前学的那点东西基本也消耗的差不多了,对于 U-Boot 源码中这种复杂的 Makefile 看起来是相当费力,于是在网上找到了《跟我一起写Makefile》这篇**来系统的复习一下。

  《跟我一起写Makefile》是前辈 陈皓 发表在其 CSDN 博客 上的系列**。对于 Makefile 的讲解很透彻,并结合了一些示例。为了避免眼高手低,同时也为了后续查阅方便,现通过将其转载并整理到 Github 的方式来学习一下(顺便使用 Github 实现在线文档托管)。



  作者的原文中没有代码高亮,排版也不是很规则,文中的示例也没有提供代码,为了加深学习印象,我会提供完整的示例代码,并在原文中会添加了一些内容、图示等等。因此,本文与作者的原文稍有差异,但主体内容没有变化!我这里主要的更改有:

增加示例代码(examples/* 目录下),用于验证文中的示例。我使用的环境是 Ubuntu 20.04.3,默认的 make 版本是 GNU Make 4.2.1 Built for x86_64-pc-linux-gnu。
在文中增加一些图片辅助理解,同时对于原内容中的错误进行了更正。
Makefile 需要由 make 程序来解释执行。我个人认为,在讲解 Makefile 之前,有必要先告诉大家 make 程序的一些工作方式。了解了 make 的工作机制对于理解 Makefile 有一定的帮助。下图是一个 make 工作示意图:



因此,我把作者的 make 的运行 章节的内容提到前面来,此外,对于原文中部分章节中关于 make 讲解的内容也提前到这个章节中。在 make 的运行 这一章节,我们不需要理解 Makefile 的内容,只需要关于 make 的工作机制即可。
在作者原文后面,我又补充了一些作者没有讲出的内容,具体见目录中 进阶 章节中的各子章节内容。
全文均为 Markdown 格式,方便大家查看及修改。在整理时部分内容稍微调整了**的排版,以使其在 Markdown 下更美观。


使用特权

评论回复
沙发
weifeng90| | 2022-3-3 20:37 | 只看该作者
ST的Linux生态做的咋样

使用特权

评论回复
板凳
littlelida| | 2022-3-24 16:18 | 只看该作者
准备着手mp157

使用特权

评论回复
地板
flycamelaaa| | 2022-3-25 09:16 | 只看该作者
别人是从入门到精通,你是从入门到放弃

使用特权

评论回复
5
jf101| | 2022-11-2 18:10 | 只看该作者
makefile其实也是IDE的一种形式吧,语法还是挺关键的

使用特权

评论回复
6
Undshing| | 2022-11-2 19:19 | 只看该作者
直接从入门到放弃

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15611

帖子

11

粉丝