2.5.0版本protobuf安装成功(下载地址:https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz)
注:以下全部在root下执行
1.安装
tar -xzf protobuf-2.5.0.tar.gzcd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf
make
make check
make install
接下来执行: $protoc --version
显示 libprotoc 2.5.0表示成功了
2.环境
a.
vim /etc/profile添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib
保存执行
source /etc/profile
vim ~/.profile
添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib
保存执行
source ~/.profile
b.
vim /etc/ld.so.conf
添加:
/usr/local/protobuf/lib
保存执行
ldconfig
c.
执行 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
3.
cd 到*.proto文件目录下
执行 protoc -I=. --cpp_out=. *.proto
生成*.pb.cc *.pb.h文件
执行 g++ *.pb.cc 源文件名.cpp -o 程序名 `pkg-config --cflags --libs protobuf` -lpthread
生成程序文件
chmod +x 程序名
./程序名
4.程序移动到其它没装protobuf系统中运行会报错:
error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory
解决:
复制libprotobuf.so.8文件到程序目录(在生成程序的目录下执行:ldd 程序名可以找到该库的位置)
执行 export LD_LIBRARY_PATH=程序所在目录:$LD_LIBRARY_PATH
或者
libprotobuf.so.8文件复制到/usr/local/lib(很多开源的共享库都会安装到该目录下)
vim /etc/ld.so.conf
增加
/usr/local/lib
保存退出
执行ldconfig