6824入门坑 go build 错误

在6824开始学习时,遇到的第一个坑。按照说明执行,结果go build失败,找不到 package “6.824/mr”

方案1

6824down下的包含了src目录,故将Gopath设置到src的父级目录即可,使得$Gopath/src该目录是合法的。

设置GoPath

cd  6.824
ls 
# Makefile  src
export GOPATH=`pwd` // 仅在当前终端有效,关闭后无效
go env // 查看环境设置
# GOPATH=当前的目录 

按照教程进入 src/main目录,执行go build

#go build -race -buildmode=plugin ../mrapps/wc.go
src/mrapps/wc.go:9:8: cannot find package "6.824/mr" in any of:
	/usr/lib/go-1.10/src/6.824/mr (from $GOROOT)
	/home/XXX/6824/6.824/src/6.824/mr (from $GOPATH)

就很离谱,并没有搜到有相同错误的情况,可能对go都比较熟悉了吧。

多次尝试后,无果,只好修改导入的包

import "6.824/mr"
改为
import "../mr"

对用的到的文件修改import后,顺利执行结束。

运行结果

go build -race -buildmode=plugin ../mrapps/wc.go
# 生成文件 wc.so
go run -race mrsequential.go wc.so pg*.txt
# 生成 mr-out-0 

但每个文件都要修改import,总感觉不是很对,太麻烦了。

方案二

去官网核对了一下,发现go版本不太一样,ubuntu上apt install 下来的默认是1.10,6824推荐使用1.15,这里合理推测是版本的问题。

重新安装go1.15后,问题解决了。确实离谱

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值