0

我有一个要调试的 make 文件。我有一个如下构造:

ifeq ($(CC_VER),4.3)
error "I am here"
AR             = ar6x qwe
CSL_LIBDIR     = $(CC_DIR)\lib
CSL_INCDIR     = $(CC_DIR)\include
else
    error "Please check that commands and include/lib path are correct for your version of CC  compiler"
endif

但它不起作用。从设置 CC_Ver 的批处理文件运行此 makefile,如下所示:

set CC_VER= 4.3

我想找到一种打印出 CC_Ver 的方法,以便找出 if 不起作用的原因。

另外我怎样才能产生错误?错误“消息”不起作用。

我正在使用 Gmake。

4

1 回答 1

0

您可以将$(error text...)构造用于错误。它会生成一个致命错误,其中消息text如下:

$(error Please check that commands and include/lib path are correct for your version of CC  compiler)

同样,您可以将$(info text...)构造用于信息目的,如

$(info CC_VER has the value "$(CC_VER)")

有关文档,请参阅控制 Make 的函数。

如果您只是想快速检查变量的值,您还可以使用-por--print-data-base选项来make打印所有规则和变量值。

if语句失败,因为命令中的=and之间有空格。该空间保留在您的变量值中,因此不等于,而是4.3set CC_VER$(CC_VER)4.3<space>4.3

于 2012-07-05T20:22:20.157 回答