【问题标题】:Egg and chicken problem when auto generate default makefile自动生成默认makefile时的鸡蛋和鸡肉问题
【发布时间】:2020-11-30 09:54:15
【问题描述】:

在官方 GMU Make 文档中无法理解下一刻 (3.5 How Makefiles Are Remade)

如果您没有指定任何要使用“-f”或“--file”读取的makefile 选项,make 将尝试默认的 makefile 名称;看什么名字 给你的 Makefile。与使用“-f”或 '--file' 选项,make 不确定这些 makefile 应该 存在。但是,如果默认的 makefile 不存在但可以 通过运行 make 规则创建,您可能希望运行规则 这样makefile就可以使用了。

如果我们不使用 -f 指定任何 makefile 并且没有默认 makefile 存在,可以从哪个 make 规则创建默认 makefile? 任何人都可以举一个这种情况的例子吗?

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    过去,默认的 makefile 可以从自动从版本控制系统中检出的内置规则生成。 GNU make 内置了从 RCS 和 SCCS 检出的规则,但现在没有人再使用这些版本控制系统了。

    激活此功能的一种方法是创建一个空目录,并设置一个指向 RCS 或 SCCS 存储库的符号链接。设置符号链接后,make 将使用正确的命令(co 用于 RCS,get 用于 SCCS)来检查文件的最新版本。

    底线,恕我直言,该功能不再相关。

    【讨论】:

    • 谢谢,据我了解,make 的文档质量不是很好。缺乏示例,缺少完整理解的关键点。
    • @DmitryPerfilyev 如果您发现错误或不准确之处,您可以帮助改进文档。这就是免费开源软件的工作原理。免费开源项目的维护者通常很乐意获得帮助。
    • @RenaudPacalet,不幸的是,它只适用于你的完美世界。实际上(如果您曾经尝试在开源中进行更改)通常没有人关心,或者您必须花费大量精力来应用您的更改。见gnu-make.2324884.n4.nabble.com/…
    • @DmitryPerfilyev 我有点惊讶地看到了你链接的讨论,老实说,我认为 GNU make 维护者花了很多时间和精力来解释你为什么要求这个例子在文档中添加的内容太晦涩难懂,有点像 corner case。他们还花了很多时间和精力试图解释你的问题来自哪里。最后,他们同意让你感到困惑的段落现在已经过时了,可能应该在未来的版本中重新修改或完全删除。
    • @RenaudPacalet - 再一次,你对完美世界的梦想与现实没有任何共同之处。一年过去了——这一段没有变化
    猜你喜欢
    • 2017-05-29
    • 1970-01-01
    • 2010-11-25
    • 2020-05-18
    • 1970-01-01
    • 2011-07-08
    • 2023-03-22
    • 2011-05-06
    • 2017-03-08
    相关资源
    最近更新 更多