【问题标题】:How to Overwrite a variable in makefile from terminal如何从终端覆盖makefile中的变量
【发布时间】:2012-07-09 10:02:56
【问题描述】:

我创建了一个简单的makefile,即

COMMON=hello
all:
  gcc $(COMMON).c -o $(COMMON).o

我运行makefile的目录包含三个文件:hello.c add.c multiply.c factorial.c 和subtraction.c。

当我在终端中使用make 命令编译它时,hello 会被打印出来。现在我想对程序进行一些更改,这样当我编写“make add”或“make multiply”或“make factorial”时,相应的程序就会编译。

【问题讨论】:

    标签: makefile gnu-make multiple-makefiles


    【解决方案1】:

    只需在命令行中提供它。

    make COMMON=bye
    

    如果目标可以从当前目录中的文件名中预测,那么您根本不需要 Makefile,因为 Make 已经知道如何从 multiply.c 生成 multiply

    .PHONY: all
    all: hello add multiply factorial
    

    如果你真的想要一个明确的食谱,试试这样的。

    %: %.c
            gcc -o $@ $^
    

    【讨论】:

    • 这件事我已经知道了......但如果用户不知道文件中有“COMMON”......用户只是想用“make ”编译程序....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多