【问题标题】:C makefile produce only 1 out file instead of 2C makefile 只产生 1 个输出文件而不是 2 个
【发布时间】:2021-01-15 09:39:49
【问题描述】:

我将文件 bar.cfoo.c 放在同一个文件夹中。

我有以下生成文件:

foo: foo.c
     gcc -o foo foo.c

all: clean foo bar

bar: bar.c
     gcc -o bar bar.c

clean:
     rm -rf bar foo 

输出只有foo,问题是为什么? foobar 有什么区别?

【问题讨论】:

  • 你只是在运行make吗?默认目标(第一个)是foo,它只会产生一个文件。试试make allmake foo bar。或将all 移至文件顶部。
  • (OT: 将clean 作为all 的先决条件是非常规的。make 的主要特点之一是它不会运行如果结果不需要运行的东西将是相同的。总是在编译之前清理失败。)
  • @Biffen 是的,我只运行“make”——默认目标是否始终是 makefile 中的第一个目标?
  • 是的。 all 不是一个神奇的名字,只是一个约定。
  • @Biffen 好的,我想我明白了,非常感谢!

标签: c gcc makefile


【解决方案1】:

我假设你以make 运行它。默认情况下,make 进程的第一个目标是 makefile,即“foo”。首先放置目标“all”,您将同时获得“foo”和“bar”。另一种方法是显式指定目标,即运行make all 而不仅仅是make

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多