這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。protobuf 3.0 與 之前的 protobuf 2.6 的文法是不一樣的。需要重新安裝一下,原生環境是 OS X Yosemite 10.10.21. 不採用home brew安裝,用homebrew安裝的話會遇到一個open issue https://github.com/Homebrew/homebrew/issues/30320 的問題,沒有仔細研究,索性就直接進行手工安裝了; 不過這裡可以記錄一下自訂brew的 formula的方法: (1) 如果直接使用 brewINSTALL protobuf 進行安裝的話,目前預設的安裝版本還是 2.6.1的,所以需要修改一個brew 的formula,讓brew去尋找3.0的版本;方法如下: sudo brew create https://github.com/google/protobuf/archive/v3.0.0-alpha-3.tar.gz 之後會要求輸入formula的名字,輸入protobuf即可, 如果之前已經安裝過protobuf,會報出protobuf.rb已經存在的錯誤,直接刪除那個protobuf.rb檔案就可以; 還有如果之前安裝了別的版本的protobuf,可以用sudo brew remove protobuf刪除; (2) 上述部署做完之後,會彈出一個vim的編輯頁面,直接儲存就可以; (3) 接著就直接安裝 sudo brewINSTALL protobuf,brew就會去下載3.0的版本,然後進行安裝,進而就報出 https://github.com/Homebrew/homebrew/issues/30320 的問題了。有興趣的可以研究一下。。。。2. 直接進入正題,手工安裝protobuf, (1)下載https://github.com/google/protobuf/archive/v3.0.0-alpha-3.tar.gz ,解壓縮,cd 到壓縮後的目錄下; (2)本來按照正常安裝linux 軟體的步驟安裝就行,但是發現沒有configure指令碼。。。不知道為啥搞了個autogen.sh 指令碼,用來產生 configure指令碼的,運行一下sudo ./autogen.sh,發現出問題。。。。 (3)autogen.sh指令碼好像要去搞一下gtest,是需要FQ的,掛了vpnFQ之後,gtest運行成功; (4)gtest成功後,還會報缺autoreconf包的錯誤,用sudo brew automake 來解決這個問題; (5)還會報錯。。。會報缺少libtool的問題,用sudo brew libtool來解決; (6)然後,沒問題了。可以直接按順序運行 ./configure ; make ; makeCHECK ; make install ;安裝成功後,直接protoc --version 來查看一下安裝的版本是否正確,返回 libprotoc 3.0.0,說明成功安裝;3. 由於要配置 protobuf的golang環境,還需要安裝golang的外掛程式,外掛程式的安裝方法比較簡單; (1) go get -u -v github.com/golang/protobuf/proto go get -u -v github.com/golang/protobuf/protoc-gen-go 兩個步驟就可以安裝好 go的外掛程式,還需要做的一個步驟是: sudo cp $GOPATH/bin/protoc-gen-go /usrLOCAL/bin 將protoc-gen-go移動到系統$PATH中,否則在使用protoc的時候會報錯: 找不到 protoc-gen-go 4. 到目前為止,mac 下protobuf 3.0的golang環境就配置好了。可以使用 protoc --go_out=. *.proto 來產生proto對應的go檔案了