Mac下Go安裝配置並使用Protobuf

2021-09-23 01:33:47 字數 2548 閱讀 2229

首先使用home brew安裝protobuf:

brew install protobuf

安裝好之後,檢視是否安裝成功

protoc --version

如果成功會有如下類似的版本號顯示:

libprotoc 3.1.0

這表明我安裝成功,並且版本號是3.1.0。

接著安裝protobuf的golang外掛程式

因為protoc需要依賴呼叫protoc-gen-go,所以,它的路徑必須要新增到環境變數裡面去。

它存在於

$gopath/bin之下。

我使用的shell是zsh,因此需要修改配置`/.zshrc

在最後新增配置:

export gopath=$home/documents/golang/

export gobin=$gopath/bin

export path=

"$gobin:$path"

儲存,然後重開zsh,即可。

我的workspace看起來是這樣的資料夾結構:

protobuf協議原始檔放在了protocol/proto下面

helloworld.proto

syntax = 

"proto2

";

package test;

message helloworld 

在這裡需要注意幾點:

1.如果不定義package,編譯器會自行的將檔名生成package名,如上面的例子將會生成一乙個package helloword;

2.因為golang遵循的是駝峰規則,message和field的名字首字母將會自動轉為大寫字母(如果首字母為下劃線,則下劃線會被自動轉換為大寫的x),而package名則不會;

接著我們就可以用命令列編譯出go**了:

protoc --go_out=. helloworld.proto

執行該命令之後,如果協議沒有語法錯誤,則會在proto檔案同級目錄下生成乙個hellword.pb.go的**檔案,接著我們就能直接拿來用了。

如果是乙個proto檔案,使用一條命令生成是沒有問題的,但是在現實中,並不會只有乙個,會有多個,那麼就需要有批量的生成工具了,在mac/linux下面使用shell指令碼可以搞定,在windows下可以用bat批處理指令碼搞定,下面給乙個mac下的shell指令碼示例**:

generate_code.sh

path=$(dirname $0)

path=$ #

echo $path#/

##編譯protobuf協議##

/protoc --version

protoc --go_out=$path/../ -i=$path $path/helloworld.proto

記得修改檔案可執行許可權,我就很偷懶,用:chmod 777 generate_code.sh搞定。

最後寫go的測試**了:

// 進行編碼

data, err := proto.marshal(data_encode)

if err != nil 

// 進行解碼

data_decode := &test.helloworld{}

err = proto.unmarshal(data, data_decode)

if err != nil 

// 測試結果

if data_encode.getid() != data_decode.getid() 

fmt.println(

"id:

", data_decode.getid())

fmt.println(

"str:

", data_decode.getstr())

fmt.println(

"opt:

", data_decode.getopt()) }

這裡需要注意的是,import裡面所填寫的是go檔案的路徑,而無需要填寫檔名,也就是go檔案的搜尋路徑,預設的根目錄是

$gopath/src

,如果是放在src裡面,則直接寫"protocol"即可,但是我不希望如此,我把它放在了測試go檔案的同級目錄下了,那麼,我就需要這樣寫"./protocol"(需要注意的是,斜槓只能寫/而不能\)。

好了,現在開始編譯:

go build testpb.go

接著是執行:

./testpb

預期的結果是這樣的:

下面是測試**的完整打包:

/files/tx7do/test_pb_go.zip

mac下安裝配置go開發環境

2 配置go環境變數gopath和gobin 1 開啟終端,cd 2 檢視是否有.bash profile檔案 ls all 3 有則跳過此步,沒有則 1 建立 touch bash profile 3 自定義gopath和gobin位置 export gopath users hopkings w...

Mac 下安裝配置Mysql

安裝完成後,在系統設定裡面看,會看到mysql 服務的啟 標如圖所示 mysql 安裝成功後,會在 usr local 目錄下看到有mysql 資料夾 配置環境變數 在 usr local mysql bin 目錄下會看到mysql 的可執行程式如圖 為了方便登陸mysql 配置環境變數即可 1.開...

Mac下Apache Tomcat安裝配置

2.壓縮之後直接拷貝到資源庫中,壓縮後的資料夾名稱為tomcat8,具體位置如下 3.開啟終端,輸入以下命令library tomcat8 bin startup.sh,瀏覽器中輸入localhost 8080,就可以看到一下效果 如果遇到提示no such file or directory錯誤提...