【问题标题】:How to use include in GNUmakefile如何在 GNUmakefile 中使用 include
【发布时间】:2014-08-14 21:00:28
【问题描述】:

我有一个名为 test.mak 的 makefile 和另一个名为 GNUmakefile 的 makefile

我从命令行执行 test.mak 的方式是“make test.mak arg1”。现在我想在 GNUmakefile 中执行它。我知道我可以使用“包含”,所以我这样做了(在 GNUmakefile 中)

"-include test.mak arg1" 但 arg1 被视为另一个 makefile 但我如何将参数传递给 test.mak?

谢谢

【问题讨论】:

  • 在命令行输入 make test.mak arg1 将导致 GNU Make 读取 GNUMakefile 并尝试构建名为 test.makarg1 的目标。它不会以任何方式、形状或形式“执行 test.mak”。使用 make -include test.mak arg1 会给出“无效选项 -- 'c'”。所以这个问题没有意义......

标签: gnu-make


【解决方案1】:

我猜你只是接受 GNUmakefile 中的参数,因为它们共享相同的变量,所以 test.mak 应该得到参数。

【讨论】:

    【解决方案2】:

    您的问题中有几个错误需要澄清:

    首先,要使用 test.mak 调用 make,您应该使用

    make -f test.mak arg1
    

    “-f”告诉 make 要使用的 makefile 的名称。如果没有它,make 将尝试使用 GNUmakefile、makefile 和 Makefile(按此顺序)。

    其次,命令行中的“arg1”告诉 make 你要创建哪个目标。它是 make 程序的参数,但不是 makefile 本身的参数。因此,没有必要尝试将 arg1 “传递”到包含行上的 test.mak。 “include”指令的参数是要包含的文件。

    线

    include test.mak arg1
    

    尝试包含两个文件(名为 test.mak 和 arg1)。

    你真正想在 GNUmakefile 中做的只是

    include test.mak
    

    这将允许您输入

    make arg1
    

    使用隐式命名的 GNUmakefile 创建“arg1”目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-21
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多