我有一个我想调试的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
但它不起作用。从批处理文件中运行此makefile,该文件将CC_Ver设置如下:
set CC_VER= 4.3
我想找到一种打印出CC_Ver的方法,这样我就可以找到为什么if不起作用。
另外如何生成错误?错误“消息”不起作用。
我正在使用Gmake。
答案 0 :(得分: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
,这将打印 all 规则和变量值。
if
语句失败,因为=
命令中的4.3
和set CC_VER
之间有空格。此空格会保留在您的变量值中,因此$(CC_VER)
不等于4.3
,而是<space>4.3