安裝指定的Protobuf版本到Mac-Protobuf2.6.1


最近新項目用到了Protobuf來儲存數據,安裝時遇到了不少坑,網上也有很多把Protobuf集成到iOS系統上但是坑很多

下邊總結一下安裝流程:

查看官方文檔
源碼在 https://github.com/google/protobuf , 如果不想自己編譯獲得最新版本,則可以下載官方編譯好的各個平台的,下載地址:https://github.com/google/protobuf/releases找到自己需要的版本,例如要裝2.6.1的話下載protobuf-2.6.1.zip

第一步:cd /Users/sddd/Downloads/protobuf-2.6.1

第二步:運行 ./configure

第三步:運行 make

第四步:運行 make check

第五步:運行 make install

如何沒有權限的話,在前邊加上sudo

第六步:

是依賴庫

 

git clone https://github.com/alexeyxo/protobuf-objc.git 完成后

 

cd ~/protobuf-objc

./autogen.sh

./configure

~/protobuf-objc其實就是剛剛clone的文件目錄

進行./configure 可能會報錯,不過別着急,先分析錯誤信息

configure: error:

ERROR: protobuf headers are required.

You must either install protobuf from google,

or if you have it installed in a custom location

you must add '-Iincludedir' to CXXFLAGS

and '-Llibdir' to LDFLAGS.

If you did not specify a prefix when installing

protobuf, try

'./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

In some 64-bit environments, try LDFLAGS=-L/usr/local/lib64.

仔細看,不難發現終端給出了解決辦法,我想這應該是跟系統是不是64位有關吧(個人猜測)。

./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

運行通過后,

make

make install

最終生成的插件名字為protoc-gen-objc,會被安裝到/usr/local/bin/目錄下。

你可以

cd /usr/local/bin/

ls -a

按照我的方法,肯定能看見protoc-gen-objc。

如果沒有make命令的話:

brew -v

如果沒有安裝的話ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

brew install automake
brew install libtool

 

到這里就可以安裝成功了,具體集成到項目上可以查看轉發的博客上

在終端protoc --version

 接下來是如何編譯一個proto的文件

1: 打開終端: cd 到放proto的文件夾下
2:輸入命令:protoc --plugin=/usr/local/bin/protoc addressbook.proto --cpp_out="./" 這個是生成c++ .h .cc文件
3:輸入命令:protoc --plugin=/usr/local/bin/protoc addressbook.proto --objc_out="./" 這個是生成oc .h .m 文件
 
如果要安裝最新版本的話,下面還有一個方案
 

首先:打開終端

brew -v

如果沒有安裝的話ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

brew install automake
brew install libtool
brew install protobuf
就是利用brew下載安裝了。protobuf就是我們想要的,另外兩個是依賴庫
接着
git clone https://github.com/alexeyxo/protobuf-objc.git 完成后

cd ~/protobuf-objc

./autogen.sh

./configure

~/protobuf-objc其實就是剛剛clone的文件目錄

進行./configure 可能會報錯,不過別着急,先分析錯誤信息

configure: error:

ERROR: protobuf headers are required.

You must either install protobuf from google,

or if you have it installed in a custom location

you must add '-Iincludedir' to CXXFLAGS

and '-Llibdir' to LDFLAGS.

If you did not specify a prefix when installing

protobuf, try

'./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

In some 64-bit environments, try LDFLAGS=-L/usr/local/lib64.

仔細看,不難發現終端給出了解決辦法,我想這應該是跟系統是不是64位有關吧(個人猜測)。

./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

運行通過后,

make

make install

最終生成的插件名字為protoc-gen-objc,會被安裝到/usr/local/bin/目錄下。

你可以

cd /usr/local/bin/

ls -a

按照我的方法,肯定能看見protoc-gen-objc。

一切准備就緒,我們來測試下。

在桌面創建一個 ProtoBuf的文件夾。然后

cd ~/Desktop/ProtoBuf

protoc --plugin=/usr/local/bin/protoc-gen-objc person.proto --objc_out=./

protoc會自動在/usr/local/bin/目錄下尋找名為”protoc-gen-objc”的插件,並使用該插件編譯.proto文件,最終生成兩個文件:

Person.pb.h

Person.pb.m

 

推薦比較好的博客:

 

http://www.jianshu.com/p/d5642a7d1e10?nomobile=yes

 

http://www.jianshu.com/p/cbbb0bfd0bb6

 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM