zzz*_*hhh 2 makefile gnu-make echo xv6 windows-subsystem-for-linux
我放
@echo "============= $(TOOLPREFIX) ================="
Run Code Online (Sandbox Code Playgroud)
在许多操作系统课程使用的xv6 Makefile的第34行中,希望打印出变量TOOLPREFIX的值。但我总是出错
Makefile:37: *** missing separator. Stop.
Run Code Online (Sandbox Code Playgroud)
该行位于任何目标之前。我尝试了所有能做的事情,比如在命令开头添加 Tab、将命令移动到 Makefile 中的任何位置,或者删除 echo 之前的符号 @,但无论如何我总是收到错误。但如果我注释掉这个命令,就没有错误了。那么,我应该如何正确打印出这个Makefile中的变量呢?
顺便说一句,如果我在命令开头添加 Tab,我得到的错误是“Makefile:37: *** 配方在第一个目标之前开始。停止。” 但如果我将 @echo 命令移至 Makefile 的底部,则会显示“Makefile:287: *** 缺少分隔符。停止。” 又出来了。
环境是Windows Subsystem for Linux,安装了ubuntu 20.04。
不应该在那里使用 echo 命令。应该用它来打印消息:
$(info ============= $(TOOLPREFIX) =================)
Run Code Online (Sandbox Code Playgroud)