如何将错误参数传递给Makefile中的下一行

问题描述 投票:0回答:1

例如,Makefile如下。只有一个目标“测试”。由于“打开”不是有效的命令,因此第一行将出错。如何将错误信息传输到以下条件指令?

Test:
    - open test.doc; ${foo} := $$?
ifeq (foo, 127)
    echo "there is a fault"
else    
    echo "why?"
endif
makefile
1个回答
1
投票

默认情况下,一旦命令返回非零状态,make将停止处理。您可以通过编写包装器脚本或添加显式SHELL命令以测试返回码来更改此设置]

Test:
    - open test.doc ; foo=$$? ; \
    if [ "$foo" = 127 ] ; then echo "There is a fault" ; else echo "Why ?" ; fi

替代:

Test:
    - open test.doc ; \
    if [ "$?" = 127 ] ; then echo "There is a fault" ; else echo "Why ?" ; fi
© www.soinside.com 2019 - 2024. All rights reserved.