我一直在尝试从Makefile创建一个可执行文件来运行java程序,我需要可执行文件来获取文本:java program $ @。这样任何参数在运行时都会传递给程序。
在Makefile中,我一直试图回应新文件:
@echo "java Program $@" >> exec
然而,$ @导致“all”被写入exec,并且$$ @在写入exec时变为空白。还有另一种方法可以在Makefile中转义此序列吗?我基本上需要它来忽略$ @。
感谢您的时间。
答案 0 :(得分:4)
$$
是逃避Make的$
的正确方法,但结果将由Bash扩展。试试这个:
@echo 'java Program $$@' >> exec
Bash中的单引号意味着变量不会扩展。