Makefile error 和 warning 函数

make提供了两个可以控制make运行方式的函数:error和warning。如果这两个函数在Makefile中使用,当make执行过程中检测到某些错误,就可以给用户提供一些信息,并且可以控制make的是否继续执行下去。

error 函数

$(error TEXT…)

使用示例:

.PHONY: all

all:
    @echo "make command start..."
    $(error find a error)
    @echo "make command end..."

当执行make命令时,make会执行默认目标all下的命令,当遇到error函数时,就会给用户一个错误提示信息,并终止make的继续执行:

# make
makefile:5: *** find a error.  Stop.

需要注意的是:error函数是在函数被调用时才会提示信息并终止make的继续执行。如果函数出现在命令中,或者出现在一个递归变量的定义里,在读取Makefile时不会出现错误。而只有包含error函数引用的命令执行时,或者包含这个函数的定义变量被展开时,才会提示错误信息TEXT,并终止make的运行。

warning 函数

warning函数跟error函数类似,也会给用户提示信息,唯一的区别是:warning函数不会终止make的运行,make会继续运行下去。

$(warning TEXT…)

使用示例:

.PHONY: all

all:
    @echo "make command start..."
    $(warning find a error)
    @echo "make command end..."

执行make命令,运行结果为:

# make
makefile:5: find a error
make command start...
make command end...

通过运行结果对比可以看到:warning函数和error函数一样,也会产生一个错误提示信息,但是不会终止make的运行。

《Makefile工程实践》视频教程,一线开发工程师独家录制,网上首家讲解Makefile的实战课程。从零开始,教你一步一步编写一个工程项目的Makefile,支持使用第三方静态库、动态库,支持指定模块或目录编译生成静态库、动态库,赠送企业级的Makefile模板,学完即可拿来使用,投入项目开发实战,具备独立开展项目开发和管理的能力。详情请点击淘宝链接:Linux三剑客