在我的 makefile 中,我想检查库是否存在并给出信息丰富的错误消息。我创建了一个条件,当找不到文件时应该退出 make 进程:
9: ifeq ($(${JSONLIBPATH}),)
10: JSONLIBPATH = ${ALTJSONLIBDIR}/${LIBJSON}
11: endif
12: ifeq ($(${JSONLIBPATH}),)
13: $(error JSON library is not found. Please install libjson before building)
14: endif
我的 makefile 卡在第 13 行:
Makefile:13: *** commands commence before first target. Stop.
第 13 行之后,我的 makefile 有了它的目标。
我尝试将此条件块放入目标中(例如,名为isJSONLibraryInstalled
)但这不能正确执行。
在处理目标之前,如何检查文件是否存在并处理错误情况?如果这是一个愚蠢的问题,我深表歉意。
首先,您正在查看以当前路径命名的变量的内容,这可能不是您想要的。一个简单的环境变量引用是$(name)
or ${name}
, not $(${name})
。因此,始终会评估第 13 行。
其次,我认为它的缩进令人窒息$(error ...)
表达。虽然表达式解析为空字符串,但行的开头仍然有一个制表符,它表示命令,而命令又不能存在于规则之外。
我认为使用空格而不是制表符来缩进会有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)