簡言
1. protobuf(protocol buffer)是google 的一種數據交換的格式,它獨立於語言,獨立於平臺。google 提供了多種語言的實現:java、c#、c++、go 和 python,每一種實現都包含了相應語言的編譯器以及庫文件。 protoc是Protobuf編譯出來的可執行程序
2. protoc-gen-go是go語言版本的 protobuf 編譯器插件,也就是說想把.proto的協議文件編譯成.go文件,需要這個插件才行
步驟1
git clone https://github.com/protocolbuffers/protobuf.git
步驟2
cd protobuf
步驟3
git submodule update --init --recursive
步驟4,此步驟若報錯 autoreconf: not found,則執行命令 sudo apt-get install autoconf automake libtool 再執行 ./autogen.sh 即可
./autogen.sh
步驟5
./configure
步驟6
make
步驟7
make check
步驟8
sudo make install
步驟9
sudo ldconfig
上面步驟都運行成功了,這時通過下面的命令查看當前版本信息:
protoc --version
以我的電腦爲例,會輸出:
libprotoc 3.11.2
下面開始安裝 protoc-gen-go
步驟10(這樣是安裝最新的protoc-gen-go)
若想安裝指定版本的protoc-gen-go,請參考這篇博客:https://blog.csdn.net/yzf279533105/article/details/104416459
若有網,則直接運行命令 go get -u github.com/golang/protobuf/protoc-gen-go ,完成後便可在$GOPATH/bin目錄下發現這個工具
若無網,則首先在github.com/golang/protobuf上下載protoc-gen-go和proto,(最好將其放在$GOPATH/src目錄下)然後進入protoc-gen-go目錄,執行go build、go install即可在$GOPATH/bin目錄下發現這個工具。前提是必須首先將$GOPATH/bin路徑添加到環境變量$PATH中
懶人做法:上述可能會出現找不到某些依賴文件,直接從一臺能訪問網絡且安裝完成的服務器上打包github.com,然後sz、rz到無網絡服務器,解壓到$GOPATH/src目錄下,go build、go install即可
PS:若要使用 grpc 以及 grpc-gateway 還要執行下面的操作
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger