我如何访问 xv6 中的 makefile 变量?

how can I access makefile variable in xv6?

现在我正尝试在我的 xv6 用户程序中访问 makefile 变量。 在其他linux系统中,这样做很容易实现

  1. 在 makefile 中,定义 gcc -D MYVARIABLE=1 ...
  2. 在我的linux用户程序中,通过定义#include <stdio.h>,我可以访问MYVARIABLE.

但在 xv6 中,没有 。所以我无法访问 MYVARIABLE.

如何访问MYVARIABLE??

猜想你使用这个 repo:https://github.com/mit-pdos/xv6-public,你可以在 CFLAGS 声明中定义 MYVARIABLE,靠近第 83 行。

CFLAGS = -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer
CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
# Your macro here
CFLAGS += -DMYVARIABLE=1

在该 makefile 中,没有 %.o: %.c 规则:implicit rules 使用:

n.o is made automatically from n.c with a command of the form $(CC) -c $(CPPFLAGS) $(CFLAGS)