Skip to main content

GNU Make Book - 揭开Linux构建自动化的神秘面纱

The GNU Make Book (四月 2025)

The GNU Make Book (四月 2025)
Anonim

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

我有超过20年的C ++,Visual Basic,VB.NET和C#开发经验,我也是一名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. Makefile调试
  3. 建设和重建
  4. 陷阱和问题
  5. 推信封
  6. GNU制作标准库

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

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

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

如果您已经使用GNU Make一段时间但是还不认为自己是专家,那么有一些很好的提示和技巧可以帮助您理解某些可能不会立即显示的错综复杂的错误。

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

第三章包括示例makefile,但不仅如此,还将向您展示如何创建可以反复运行的Makefile。

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

我发现当我进一步阅读这本书时,因为我并没有积极地尝试使用GNU Make,而且因为我的知识处于非常基础的水平,所以我的脑子里有一些主题。

当我进入“推信封”一章时,我的眼睛有点茫然。

我的主要总结,如果我不得不总结这本书,那就是作者清楚地知道他的东西,并试图传递尽可能多的信息。

问题在于,有时当主题专家试图写下某些东西时,他们会说“哦,它很容易,你所要做的就是……”关于它们的光环。

我的后门上的橡胶密封件上周脱落了,因为它只有几年的历史,我打电话给公司,因为它仍在保修期内。

电话里的那位女士说:“哦,没关系,我会寄给你一个新的印章”。

我说“哦,我必须自己适应吗?这是我能做的事情”。

回答是“当然你可以,你所要做的就是取下门,盖上密封圈,把门重新放回去”。

现在我的想法是“哇,在那里倒一点。把门关掉?!?”。我没资格拆除门,盖上密封件并重新安装门。我把它留给专家。

有了这本书,我觉得你需要另一本书和一些编写Makefile的经验才会发现它很有用。

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

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