1

在下面的程序中,有两件事我不明白。

  1. 如何在 Microsoft VC 中使用这个 makefile?

  2. 为什么有一个'?在'='之前?

程序:

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
4

1 回答 1

6
  1. Visual Studio 中有一个 makefile 项目类型。否则,makefile 很可能打算由 nmake 运行。

  2. 语法 '?=' 表示如果变量未定义,则赋值。也就是说,如果没有设置DBG,则将其设置为/Zi,否则如果DBG 当前值为/Z0,则保持当前值为/Z0。

于 2009-01-14T02:14:34.587 回答