2.5 KiB
Overview
This is protobuf-c
, a C implementation of Google Protocol Buffers. It includes libprotobuf-c
, a pure C library that implements protobuf encoding and decoding, and protoc-c
, a code generator that converts Protocol Buffer .proto
files to C descriptor code, based on the original protoc
. protobuf-c
formerly included an RPC implementation; that code has been split out into the protobuf-c-rpc project.
protobuf-c
was originally maintained by Dave Benson through version 0.15 but is now being maintained by a new team. Thanks, Dave!
Building
protobuf-c
requires a C compiler, a C++ compiler, Google Protocol Buffers, and pkg-config
to be installed.
./configure && make && make install
If building from a git checkout, the autotools
(autoconf
, automake
, libtool
) must also be installed, and the build system must be generated by running the autogen.sh
script.
./autogen.sh && ./configure && make && make install
Synopsis
Include the protobuf-c
header file:
#include <protobuf-c/protobuf-c.h>
Link against the protobuf-c
library.
-lprotobuf-c
libprotobuf-c
includes a pkg-config
file. It is recommended to use the pkg-config
system in order to determine the complete set of compiler and linker flags for building applications that utilize libprotobuf-c
. If using pkg-config
with autoconf
, the PKG_CHECK_MODULES
macro can be used to detect the presence of libprotobuf-c
:
PKG_CHECK_MODULES([PROTOBUF_C], [libprotobuf-c])
This will place compiler flags in the PROTOBUF_C_CFLAGS
variable and linker flags in the PROTOBUF_C_LDFLAGS
variable.
(Note that the protobuf-c
header file used to be installed as google/protobuf-c/protobuf-c.h
in previous versions.)
Contributing
Please send patches to the protobuf-c mailing list or by opening a GitHub pull request.
Copyright to all contributions are retained by the original author, but must be licensed under the terms of the BSD-2-Clause license. Please add a Signed-off-by
header to your commit message (git commit -s
) to indicate that you are licensing your contribution under these terms.