之前在VS中使用過protobuf,windows情況下還是相對熟悉些,配置起來也快些。現在需要對項目進行移植到linux上,所以需要再配置下protobuff,方法如下:
1.下載protobuff,我下的是2.3.0版本
最新的protobuf可以到Google Code上下載:http://code.google.com/p/protobuf/downloads/list
2.解壓和安裝操作:
protobuf-2.3.0.tar.gz
tar -zxvf protobuf-2.3.0.tar.gz
cd protobuf-2.3.0
sudo ./configure --prefix=/usr
對於2.2版本的好像不需要這個prefix參數也行,但對於2.2以下的版本,如果不設置這個參數,protobuf的include 和 lib 會安裝到/usr/local下去,導致protoc找不到依賴的.so庫,error while loading shared libraries: libprotobuf.so.2: cannot open shared object file: No such file or directory。需要重新設置環境變量。有了這個參數後就可以一步到位,比較方便。
sudo make
sudo make check
sudo make install
protoc --version 可以看到版本號,說明安裝成功。
3.message文件生成.cc 和其頭文件.h
比如需要將包含message信息的名為search.proto轉化為search.pb.cc 和search.pb.h。
cd /temp/message
protoc --cpp_out=. search.proto
.表示當前目錄,cpp_out表示生成cpp文件,可以通過protoc --help查看參數那麼就會在當前目錄下生成myMessage.pb.cc和myMessage.pb.h兩個文件也就是我們需要的,拷貝到相應的工程目錄就可以使用myMessage對應的一些函數。
4.設置包含的include文件和lib目錄
project->build option->link setting->add
protobuf
一般這樣就可以完整地使用protobuf了,一些額外的頭文件和庫,可以在search directories裡面設置。