MIT6.828 Lab5 make报错 解决方式

在完成lab4并开始lab5时遇到编译错误,原因是-Werror选项将警告视为错误。通过修改GNUmakefile,移除-Werror解决了这个问题。然而,随后又出现了多重定义错误,主要是关于super和bitmap变量。通过在fs/fs.c和fs/fs.h中添加extern关键字,成功解决了这个错误,使编译得以继续。

昨天完成了lab4,今天开启了lab5。

Lab 5: File system, Spawn, and Shella​​​​​​

按照getting stared的流程走,当执行完git merge lab4后,想执行一下make指令看看是否这段ok,结果报错,如下所示:

lib/spawn.c:110:42: error: taking address of packed member of ‘struct Trapframe’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  110 |         if ((r = init_stack(child, argv, &child_tf.tf_esp)) < 0)
      |                                          ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [lib/Makefrag:37: obj/lib/spawn.o] Error 1

 我们可以注意到这行:

cc1: all warnings being treated as errors
报错原因就如该行英文的字面意思,因此想到去修改GNUmakefile中的Werror

打开lab5/下的GNUmakefile

#
# This makefile system follows the structuring conventions
# recommended by Peter Miller in his excellent paper:
#
#       Recursive Make Considered Harmful
#       http://aegis.sourceforge.net/auug97.pdf
#
OBJDIR := obj

# Run 'make V=1' to turn on verbose commands, or 'make V=0' to turn them off.
ifeq ($(V),1)
override V =
endif
ifeq ($(V),0)
override V = @
endif

-include conf/lab.mk

-include conf/env.mk

LABSETUP ?= ./

TOP = .

命令模式下输入

/Werror<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值