golang make 报错package server is not in GOROOT

博客讲述了在 Go 项目中遇到的构建错误,问题在于引用的包不在 GOROOT 中。解决方案是切换到 GOPATH 模式或者启用 Go 模块(Go Modules)模式。通过设置 GO111MODULE=off 并执行 `go mod init` 来初始化模块,解决了包导入路径的问题。
摘要由CSDN通过智能技术生成

make 时报错如下:

–> Building…
go build -v -o bin/xenon --ldflags ‘-X “build.tag=v1.1.4-10-ga6a055c” -X “build.time=2021/06/04 02:23:12” -X “build.git=a6a055c”’ src/xenon/xenon.go
src/xenon/xenon.go:12:2: package build is not in GOROOT (/usr/lib/golang/src/build)
src/xenon/xenon.go:13:2: package config is not in GOROOT (/usr/lib/golang/src/config)
src/xenon/xenon.go:18:2: package raft is not in GOROOT (/usr/lib/golang/src/raft)
src/xenon/xenon.go:19:2: package server is not in GOROOT (/usr/lib/golang/src/server)
src/xenon/xenon.go:20:2: package xbase/xlog is not in GOROOT (/usr/lib/golang/src/xbase/xlog)
make: *** [build] Error 1

go env 查看环境(默认)
GO111MODULE=""
GOARCH=“amd64”
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH=“amd64”
GOHOSTOS=“linux”
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS=“linux”
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY=“https://proxy.golang.org,direct”
GOROOT="/usr/lib/golang"
GOSUMDB=“sum.golang.org”
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION=“go1.16.4”
GCCGO=“gccgo”
AR=“ar”
CC=“gcc”
CXX=“g++”
CGO_ENABLED=“1”
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG=“pkg-config”
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1930421392=/tmp/go-build -gno-record-gcc-switches"

如果要用 gopath 模式 引入包 从src目录下开始引入 需要关闭 go mod 模式
export GO111MODULE=off

[root@slave1 xenon]# make
–> Building…
go build -v -o bin/xenon --ldflags ‘-X “build.tag=v1.1.4-10-ga6a055c” -X “build.time=2021/06/04 02:33:20” -X “build.git=a6a055c”’ src/xenon/xenon.go
model
build
vendor/github.com/pkg/errors
vendor/github.com/stretchr/testify/vendor/github.com/pmezard/go-difflib/difflib
vendor/github.com/stretchr/testify/vendor/github.com/davecgh/go-spew/spew
xbase/xlog
vendor/github.com/go-sql-driver/mysql
config
xbase/common
xbase/xrpc
vendor/github.com/stretchr/testify/assert
mysqld
mysql
raft
server
command-line-arguments
go build -v -o bin/xenoncli --ldflags ‘-X “build.tag=v1.1.4-10-ga6a055c” -X “build.time=2021/06/04 02:33:20” -X “build.git=a6a055c”’ src/cli/cli.go
vendor/github.com/mattn/go-runewidth
vendor/github.com/spf13/pflag
vendor/github.com/olekukonko/tablewriter
cli/callx
vendor/github.com/spf13/cobra
cli/cmd
command-line-arguments
如果使用go mod 模式
export GO111MODULE=on

并且在目录下执行 go mod init

目录下产生两个文件

go.mod
go.sum
否则就会报错

main.go:15:2: package tinybg/conf is not in GOROOT (/usr/local/go/src/tinybg/conf)
main.go:16:2: package tinybg/utils is not in GOROOT (/usr/local/go/src/tinybg/utils)

参考:https://www.jianshu.com/p/82b55b516cc8
十分感谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值