0
我想設置一個變量$(CFLAGS2)來保存不同的值,具體取決於我製作的目標。具體而言,我想有一個目標來編譯我的項目與「-g -Wall」,另一個與「-O3」在規則中指定一個make變量
我試了一下這樣的編譯:
CC=gcc
COPT=-c $< -o [email protected] $(CADD) $(CFLAGS) $(CFLAGS2)
.PHONY: opti
.PHONY: debi
opti: seto
make hammingtest
debi: setd
make hammingtest
.PHONY: seto
seto:
$(eval CFLAGS2 := -O3)
.PHONY: setd
setd:
$(eval CFLAGS2 :=-g -Wall)
hamming.o: hamming.cpp hamming.h
$(CC) $(COPT) $(DEFS) $(CFLAGS2)
hammingtest.o: hammingtest.cpp hamming.h
$(CC) $(COPT) $(DEFS) $(CFLAGS2)
hammingtest: hammingtest.o hamming.o
$(CC) -o hammingtest hammingtest.o hamming.o
但是,當我做「debi」就好像$(CFLAGS)沒有設置(與「make opti」一樣) 我該怎麼做到這一點?
奧利奇:感謝編輯 – user1479670 2013-04-04 10:21:55
我找到了解決辦法,但我還沒有找到如何創建一個答案在這裏,我可以顯示代碼(即不是註釋)...的 – user1479670 2013-04-04 10:59:25
可能重複[Makefile文件 - 根據目標定義編譯變量](http://stackoverflow.com/questions/5127977/makefile-define-compilation-variables-based-on-target-for) – Beta 2013-04-04 12:46:03