GNU Make Book - 揭秘Linux构建自动化

除了撰写关于Linux的文章以及撰写有关发行版和工具的评论和教程外,我还大量参与软件开发。 不幸的是,该软件开发的99.9%发生在Windows平台上。

作为一名C ++,Visual Basic,VB.NET和C#开发人员,我拥有超过20年的经验,并且我也是一名熟悉SQL Server的DBA和开发人员。

我不擅长的是为Linux开发软件。 这只是我从未真正打扰过的事情。 主要原因是,在白天开发软件后,我想要做的最后一件事就是坐在一个晚上编写更多软件。

我显然喜欢修改脚本和编写奇怪的小程序。 这些通常用于Raspberry PI上基于电子的项目

Windows平台上的许多开发人员在迁移到Linux时会遇到的一件事是了解构建和打包应用程序所需的工具。

到目前为止,要开发的最简单的应用程序类型是Web应用程序,因为通常它们不需要编译代码(PHP,Perl,Python),并且文件被部署到Web服务器上的集合位置。

为Linux构建的大量应用程序是使用C,C ++或Python开发的。 编译单个C程序相对容易,但是当您需要编译多个具有多个依赖项的C程序时,事情会变得更加棘手。

GNU Make是一个构建自动化脚本工具,可帮助您以不同方式重复编译应用程序。 例如,您可以提供一个参数,该参数取决于该值将使用64位或32位编译应用程序。

GNU Make书籍由John Graham-Cumming编写,旨在帮助GNU Make的用户更好地掌握与GNU Make相关的复杂性。

本书分为六章:

  1. 基本知识再探讨
  2. 生成文件调试
  3. 建设和重建
  4. 陷阱和问题
  5. 推动信封
  6. GNU Make标准库

我不相信这本书是真正针对初学者的,因为它缺乏你在学习一门新课程时所期望的某些澄清,例如“什么是GNU Make?”,“如何创建Make文件?”,“为什么使用比编译每个程序更好吗?“ 和“如何使用GNU Make编译程序?”。 所有这些主题都包含在GNU Make手册中

第一章被称为“重访的基础”而不是“基础”,这一事实清楚地表明,在开始之前,你应该对主题有一个基础。

第一章介绍所有基础知识,如变量的使用,命令使用的环境以及$(Shell)环境。 随着本章的继续,您将进入比较,列表和用户定义函数的主题。

如果你一直在使用GNU Make一段时间,但还没有认为自己是专家,那么有一些很好的提示和技巧可以帮助你理解某些可能并不明显的错综复杂的细节。

第二章对于那些一直试图在构建脚本中设置错误的人来说是天赐之物。 “Makefile调试”部分提供了用于调试Makefiles的优秀提示和提示,并包含有关打印变量值和甚至转储每个变量值的部分。 在本章中,有GNU调试器的指南,您可以使用它来逐步执行脚本。

第三章包含示例makefile,但不止如此,它向您展示了如何创建可反复运行的Makefile。

“陷阱和问题”着眼于某些术语之间的差异,例如=和:=,以及ifndef和?=。

当我进一步阅读本书时发现,由于我没有积极尝试使用GNU Make,并且因为我的知识处于非常基本的层面,所以一些主题事项已经超出了我的头脑。

当我到达“推出信封”章节时,我的目光有些gla gla。

如果我不得不总结这本书,我的主要总结是作者清楚地知道他的内容并尽力传递尽可能多的信息。

问题是,有时候,当一个主题专家试图写下某些东西时,他们有这个“很容易,所有你需要做的就是......”的光环。

上个星期我后门上的橡皮封条脱落了,因为它只有一两年的历史,所以我给该公司打电话,因为它仍在保修期内。

电话中的那位女士说:“没关系,我会给你发一封新邮件”。

我说:“我必须自己适应它吗?我能做些什么”。

答复是:“当然你可以,你所要做的就是脱下门,装上封条,然后把门放回去”。

现在我的瞬间想法是“哇,在那里倒转一下,把门关上?!?”。 我没有资格取下门,装上印章并重新装上门。 我把这件事留给专家。

有了这本书,我觉得在你发现它有用之前,你需要另外一本书和一定的经验来写Makefiles。

我认为提供的提示,技巧和知识可以帮助一些人说:“哦,那就是为什么那么做”或“我没有意识到你可以这样做”。

因此,我的评估是,如果你正在寻求关于GNU Make高级知识的澄清或更为中级的知识,那么你应该购买这本书,但它不适合初学者。