2012-07-09 109 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