Golang GRPC 環境 問題

酒沉吟發表於2024-05-30

生成檔案 執行

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"
        ]
    }

 

相關文章