最近在學習go的grpc需要使用protobuf,protoc-gen-go包可以生成golang的protobuf版本協議程式碼
在mac開發環境下,使用以下命令安裝包時會報錯
go get -u github.com/golang/protobuf/protoc-gen-go
報錯內容是以下內容:
報錯資訊為go1.17版本以後,不贊成使用go get來安裝包,而是通過go install的方式安裝包
這裡我使用了我個人的解決方法
進入到golang/protobuf下載原始碼
- 進入protobuf目錄
- 進入protoc-gen-go目錄下
- 執行命令go build
- 執行命令go install
這裡簡單介紹一下go build和go install
go build
通過go build加上要編譯的Go原始檔名,我們即可得到一個可執行檔案,預設情況下這個檔案的名字為原始檔名字去掉.go字尾。
go install
與build命令相比,install命令在編譯原始碼後還會將可執行檔案或庫檔案安裝到約定的目錄下。
go install編譯出的可執行檔案以其所在目錄名(DIR)命名
go install將可執行檔案安裝到與src同級別的bin目錄下,bin目錄由go install自動建立
go install將可執行檔案依賴的各種package編譯後,放在與src同級別的pkg目錄下
此時在GOPATH的/bin目錄下會存在protoc-gen-go的可執行檔案
將$GOPATH/bin目錄加入到環境變數中,這樣後續只要使用go install生成的命令就可以直接執行了。
這時編輯/etc/profile檔案將此文字加入profile檔案中,這裡的$GOPATH變數為你本地GO的GOPATH路徑
export PATH="$PATH:$GOPATH/bin" >> /etc/profile
這時問題就解決了!可以通過命令protoc --go_out=plugins=grpc:. *.proto
匯出golang的protocbuf協議程式碼
本作品採用《CC 協議》,轉載必須註明作者和本文連結