我在旧项目中有一组特殊的Makefile。它们是由Watcom品牌处理的,但是它们似乎具有NMAKE文件格式。我经常遇到以下结构:
*$(_cmd_run)
$(_cmd_run)
只是一个宏扩展,但是在这种情况下,美元符号前还有一个星号。我似乎找不到任何有关其目的的文档。 NMAKE文档对此语法没有任何要求。我什至尝试查找Open Watcom源文件,但无济于事。
这个星号表示什么?
答案 0 :(得分:2)
这是在DOS下处理“长”命令行的解决方法,因此可以安全地将其删除。在WMAKE的帮助下:
在DOS下,星号前缀(*)将使Make检查命令参数的长度。如果它太长(> 126个字符),它将使用命令参数并将其填充到临时环境变量中,然后以“ @env_var”作为参数来执行命令。