在下面的程序中,有两件事我不明白。
如何在Microsoft VC中使用此makefile?
为什么会有'?'在'='之前?
程序:
ifeq ($(TARGET_COMPILER),ms)
include ../makefile.ms.config
DBG?= /Zi
OPT= /Ox
CXXFLAGS += $(COMMON_FLAGS) $(OPT) $(DBG)
EEXT = $(EXT).dll
ifeq ($(GZSTREAM),1)
MYLIBS = src/gzstream/lib/zlib.lib
endif
endif
答案 0 :(得分:6)
Visual Studio中有一个makefile项目类型。否则,很可能makefile是由nmake运行的。
语法'?='表示如果变量未定义则赋值。换句话说,如果没有设置DBG,它会将其设置为/ Zi,否则如果DBG当前值为/ Z0,它将保持当前值/ Z0。