2012-07-09 87 views
1

覆盖makefile文件中的一个变量我创建了一个简单的makefile即如何从终端

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

在我运行了生成文件包含三个文件的目录:hello.c的add.c multiply.c阶乘。 c和subtraction.c。

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

回答

1

只需在命令行上提供它。

make COMMON=bye 

如果目标是在当前目录中的文件名可预测的,你并不真的需要一个Makefile可言,因为化妆已经知道如何从multiply.c使multiply

.PHONY: all 
all: hello add multiply factorial 

如果你真的想要一个明确的配方,尝试这样的事情。

%: %.c 
     gcc -o [email protected] $^ 
+0

这件事我已经知道了......但是如果用户不知道“COMMON”是否存在于文件中.............用户只是想使用“make ”编译程序.... – user1511590 2012-07-09 11:57:21

+0

请注意编辑扩展此。 – tripleee 2012-07-09 12:34:02