Golang GRPC 環境 問題
生成文件 執行
protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative service.proto
報下列錯處理方法
1.'protoc-gen-go' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
a.檢查gopath目錄(%GOPATH%\)的bin文件夾,是否有protoc-gen-go.exe,protoc-gen-go-grpc.exe
protoc-gen-go.exe
protoc-gen-go-grpc.exe
b.如果沒有 protoc-gen-go-grpc.exe
執行:go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
c.如果有將剛才找到的2個exe文件,復制到goroot(%GOROOT%\)的bin目錄下
2.protoc-gen-go: unable to determine Go import path for "services.proto"
Please specify either:
? a "go_package" option in the .proto source file, or
? a "M" argument on the command line.
See https://protobuf.dev/reference/go/go-generated#package for more information.
在相應的.proto文件中添加
option go_package = "./;pb"
關于VScode proto 3 插件的配置文件
"protoc": { "path": "D:/grpc/bin", "compile_on_save": false, "options": [ "--proto_path=protos/v3", "--proto_path=protos/v2", "--proto_path=${workspaceRoot}/proto", "--proto_path=${env.GOPATH}/src", "--java_out=gen/java" ] }
3. 當引用包路徑由GOPATH變成GOROOT 包出錯時
原因是引入包應該去GOPATH查找,但是卻去GOROOT目錄下查找,出現了混淆。
解決方案:
go env -w GO111MODULE=off

浙公網安備 33010602011771號