尝试运行go build命令后出现的一小部分错误
go build ./...
trillian.pb.go:7:8: cannot find package "github.com/golang/protobuf/proto" in any of:
/usr/local/go/src/github.com/golang/protobuf/proto (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/golang/protobuf/proto (from $GOPATH)
trillian.pb.go:11:8: cannot find package "github.com/golang/protobuf/ptypes/any" in any of:
/usr/local/go/src/github.com/golang/protobuf/ptypes/any (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/golang/protobuf/ptypes/any (from $GOPATH)
trillian_admin_api.pb.go:12:8: cannot find package "github.com/golang/protobuf/ptypes/empty" in any of:
/usr/local/go/src/github.com/golang/protobuf/ptypes/empty (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/golang/protobuf/ptypes/empty (from $GOPATH)
trillian.pb.go:10:8: cannot find package "github.com/google/trillian/crypto/sigpb" in any of:
/usr/local/go/src/github.com/google/trillian/crypto/sigpb (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/google/trillian/crypto/sigpb (from $GOPATH)
trillian_admin_api.pb.gw.go:17:2: cannot find package "github.com/grpc-ecosystem/grpc-gateway/runtime" in any of:
/usr/local/go/src/github.com/grpc-ecosystem/grpc-gateway/runtime (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/grpc-ecosystem/grpc-gateway/runtime (from $GOPATH)
trillian_admin_api.pb.gw.go:18:2: cannot find package "github.com/grpc-ecosystem/grpc-gateway/utilities" in any of:
/usr/local/go/src/github.com/grpc-ecosystem/grpc-gateway/utilities (from $GOROOT)
/Projects/Proj1/trillian/src/github.com/grpc-ecosystem/grpc-gateway/utilities (from $GOPATH)
trillian_admin_api.pb.go:15:2: cannot find package "golang.org/x/net/context" in any of:
/usr/local/go/src/golang.org/x/net/context (from $GOROOT)
/Projects/Proj1/trillian/src/golang.org/x/net/context (from $GOPATH)
trillian_admin_api.pb.go:10:8: cannot find package "google.golang.org/genproto/googleapis/api/annotations" in any of:
/usr/local/go/src/google.golang.org/genproto/googleapis/api/annotations (from $GOROOT)
/Projects/Proj1/trillian/src/google.golang.org/genproto/googleapis/api/annotations (from $GOPATH)
trillian_log_api.pb.go:65:8: cannot find package "google.golang.org/genproto/googleapis/rpc/status" in any of:
/usr/local/go/src/google.golang.org/genproto/googleapis/rpc/status (from $GOROOT)
/Projects/Proj1/trillian/src/google.golang.org/genproto/googleapis/rpc/status (from $GOPATH)
trillian_admin_api.pb.go:11:8: cannot find package "google.golang.org/genproto/protobuf/field_mask" in any of:
/usr/local/go/src/google.golang.org/genproto/protobuf/field_mask (from $GOROOT)
/Projects/Proj1/trillian/src/google.golang.org/genproto/protobuf/field_mask (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)
转到环境输出
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/Projects/Proj1/trillian"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build690359699=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)
GOPATH并且GOROOT已设置,但仍然无法正确运行命令。尝试安装到主目录和自定义目录,以更改gopath和goroot,但仍然没有运气。有什么建议如何解决这个问题?
首先在 GOROOT 和 GOPATH 环境变量下查看所有导入的包。确保您的包位于这些目录下的某个位置。
现在假设GOPATH设置为:/Users/test/Desktop/GoProject
和GOROOT : /usr/local/go (安装 go 的地方)。如果 GoProject 中的文件有一个导入的包
import "abc/def/packageName"
Run Code Online (Sandbox Code Playgroud)
那么它应该出现在以下两个地方中的任何一个:
/Users/test/Desktop/GoProject /src/abc/def/packageName/* /usr/local/go /src/abc/def/packageName/*
如果没有,您将收到问题中报告的错误。
这些目录中的文件的第一行为
package packageName
Run Code Online (Sandbox Code Playgroud)
声明所有这些文件构成一个包packageName
正如官方文件所说:
最简单的方法就是跑步
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}。
请参阅此处的完整介绍:golang/protobuf 安装。