Makefile只创建第一个文件

时间:2014-07-07 15:45:15

标签: linux makefile

我有一个Makefile如下:

work/step1.tab: temp.tab hcp_raw_data_sample.tab
    command

work/step2.tab: work/step1.tab
    command

我在主目录中有temp.tabhcp_raw_data_sample.tab,并希望在step1.tab目录中创建step2.tabwork。但是,只创建了step1.tab; step2.tab没有。我该怎么办?

2 个答案:

答案 0 :(得分:2)

运行make时,它会构建makefile中列出的第一个目标,在本例中为work/step1.tab。它没有看到构建step2.tab的任何理由,因为它拥有构建step1所需的一切,这是默认目标。

要让它同时构建,请将work/step2.tab移到work/step1.tab之上。这使work/step2.tab成为默认目标。

通过这种方式,它可以看到它需要在构建work/step1.tab之前构建work/step2.tab,因此它会这样做,然后它将构建work/step2.tab

答案 1 :(得分:1)

Make只执行第一个目标。通常,您创建一个目标all,用于创建所需的所有子目标。如果您将all作为第一个目标,那么如果您拨打make,则会构建该目标。