在 Ubuntu 上用 Go 编译报错,排查一般可以按下面步骤来:
Go 的报错通常已经比较明确,先不要急着搜,先看:
go build
# 或
go run main.go
常见错误类型:
go version
go env
重点看这几个:
GOPATH
GOROOT
GO111MODULE
Ubuntu 常见坑:
/usr/bin/go)/usr/local/go)查看真实路径:
which go
ls -l $(which go)
如果是新项目,一定要用 module:
go mod init projectname
go mod tidy
go build
如果报:
cannot find package
一般是:
go mod initgo mod tidygo get xxx
# 或
go mod tidy
不要用 sudo go
而是:
sudo chown -R $USER:$USER $GOPATH
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on
如果还是看不懂:
go build -x
go vet
go build -v
你可以直接把完整的报错信息贴出来(从 go build 开始那几行),我可以帮你精确定位。
例如:
# command-line-arguments
./main.go:10:2: undefined: xxx
这样我能直接告诉你改哪里。