我如何访问 xv6 中的 makefile 变量?
how can I access makefile variable in xv6?
现在我正尝试在我的 xv6 用户程序中访问 makefile 变量。
在其他linux系统中,这样做很容易实现
- 在 makefile 中,定义
gcc -D MYVARIABLE=1 ...
- 在我的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)
现在我正尝试在我的 xv6 用户程序中访问 makefile 变量。 在其他linux系统中,这样做很容易实现
- 在 makefile 中,定义
gcc -D MYVARIABLE=1 ...
- 在我的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 fromn.c
with a command of the form$(CC) -c $(CPPFLAGS) $(CFLAGS)