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