2012-07-05 39 views
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如下一个批处理文件运行此生成文件:

set CC_VER= 4.3 

我想找到一种方法来打印出CC_Ver这样我就可以找到为什么如果不工作。

另外我该如何生成一个错误?错误“消息”不起作用。

我正在使用Gmake。

回答

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)") 

的文档见Functions That Control Make

如果你只是希望快速检查变量的值,你也可以使用-p--print-data-base选项make,这将打印所有规则和变量值。

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