1 CUR_DIR = $(shell pwd) 2 3 CFLAGS = -g -Wall 4 GCC = gcc 5 GXX = g++ 6 7 TARGET = exe.out 8 9 SRC_FILES += $(shell find $(CUR_DIR) -name *.cc) 10 += $(shell find $(CUR_DIR) -name *.cpp) 11 12 OBJS = fatal-impl.o log.o 13 14 INCLUDE += -I. 15 RM = rm -f 16 17 LINK = 18 CFLAGS = -DNS3_LOG_ENABLE -g -Wall -O0 19 20 all: $(OBJS) test.o 21 $(GXX) $(CFLAGS) $^ -o $(TARGET) $(LINK) 22 23 test.o: test.cpp 24 $(GXX) -c $(CFLAGS) $^ -o $@ 25 26 $(OBJS): %.o : %.cc 27 $(GCC) -c $(CFLAGS) $(INCLUDE) $< -o $@ 28 29 .PHONY : clean 30 clean: 31 $(RM) $(OBJS) 32 $(RM) $(TARGET)
上面-D选项放在-c选项前宏定义不起作用,修改放在-c选项后面后ok,
相当于在需要编译的文件最开始位置添加#define xxx
makefile 中定义宏位置需要注意一下,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/kernel0815/p/3832677.html