下载对应的版本,这里以protobuf-cpp-3.0.0-alpha-3.tar.gz为例。在目录下以此执行以下命令
$ ./configure
$ make
$ make check
$ make install
安装。
安装默认路径:/usr/local/
可以通过./configure --prefix=/usr命令修改安装路径,如果已经安装了其他版本,再次安装之前一定要执行make clean。
安装完成之后执行下面命令:
pkg-config --cflags protobuf # print compiler flags
pkg-config --libs protobuf # print linker flags
pkg-config --cflags --libs protobuf # print both
如何上述命令执行不正常的话,执行
configure CXXFLAGS="$(pkg-config --cflags protobuf)" \
LIBS="$(pkg-config --libs protobuf)"
链接时需要增加选项::`pkg-config --cflags --libs protobuf`
c++ my_program.cc my_proto.pb.cc `pkg-config --cflags --libs protobuf`
3:使用过程
语法
定义数据结构语法可以自己查资料了,以下是一个示例:
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}
message Polyline {
repeated Point point = 1;
optional string label = 2;
}
编译为c++文件
protoc -I=./ --cpp_out=./ lm.helloworld.proto[文件名]
会生成对应的.cc .h文件
将其包含至工程中。链接是需要增加链接条件:
`pkg-config --cflags --libs protobuf`
如果链接出现错误说明
PKG_CONFIG_PATH路径没有设置。
执行:
echo $PKG_CONFIG_PATH输出路径设置
可以通过:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
命令来增加PKG_CONFIG_PATH路径,也可以将
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
增加到系统变量文件中,然后更新文件
如果链接中出现动态库链接不上,则:
vim /etc/ld.so.conf
增加protocol动态库路径:
/usr/local/lib
执行:
ldconfig
更新动态库路径,至此就不应该有错误了。