使用makefile有什么好的理由吗

Are there any good reasons in using a makefile?

本文关键字:理由 什么 makefile 使用      更新时间:2023-10-16

在C++中,我可以通过使用shell脚本来实现相同的结果,在该脚本中我可以编写所有编译指令。所以我的问题是:

使用makefile有什么好的理由吗?

你有什么例子可以证明这一点吗?

使用makefile的主要原因之一是它只会重新编译自上次构建项目以来更改的源文件。为此编写shell脚本将比编写makefile花费更多的工作。

  1. 键盘磨损
  2. 防止编译所有内容花费很长时间
  3. 更容易在编译调试和生产之间进行更改

关于示例-请参阅大多数用C/C++编写的GNU项目

您可能想了解一下自动工具。他们将为您制作一个Makefile,同时他们也可以帮助实现代码可移植性。然而,您必须制作一些相对简单的模板文件,自动工具将使用这些文件来构建配置文件,最终用户可以运行这些文件/配置[选项];制作它们为您的makefile提供了许多最终用户可能期望的功能。有关详细介绍,请参阅:http://www.freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotools

假设您确实编写了一个shell脚本。它会起作用,你会很开心。只要有机会,你就会继续使用它。您将向其中添加参数,以便指定选项。您还会注意到,它一直在重新编译所有内容。因此,您将尝试使其更智能,以便它只重新编译已更改的文件。实际上,你要做的就是编写自己的make系统。

只要你有充分的理由这样做,那就没关系。例如:现有的make解决方案不能很好地解决X,所以你写了一个来解决这个问题。

然而,你没有现有的make系统无法解决的问题(或者至少,听起来你没有:)。你试图解决的问题已经解决了。只需阅读并使用解决方案-制作文件:)

所以,为了回答你的问题,是的,有很多——其中大部分在你需要功能之前你不会意识到。当你这样做的时候,你会感激它已经做到了你想要的。

这与在代码中使用库的逻辑相同。