|
|
|
@ -40,20 +40,22 @@ You can also get the source by "git clone" our git repository. Make sure you |
|
|
|
|
have also cloned the submodules and generated the configure script (skip this |
|
|
|
|
if you are using a release .tar.gz or .zip package): |
|
|
|
|
|
|
|
|
|
$ git clone https://github.com/protocolbuffers/protobuf.git |
|
|
|
|
$ cd protobuf |
|
|
|
|
$ git submodule update --init --recursive |
|
|
|
|
$ ./autogen.sh |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
git clone https://github.com/protocolbuffers/protobuf.git |
|
|
|
|
cd protobuf |
|
|
|
|
git submodule update --init --recursive |
|
|
|
|
./autogen.sh |
|
|
|
|
``` |
|
|
|
|
To build and install the C++ Protocol Buffer runtime and the Protocol |
|
|
|
|
Buffer compiler (protoc) execute the following: |
|
|
|
|
|
|
|
|
|
$ ./configure |
|
|
|
|
$ make |
|
|
|
|
$ make check |
|
|
|
|
$ sudo make install |
|
|
|
|
$ sudo ldconfig # refresh shared library cache. |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
./configure |
|
|
|
|
make |
|
|
|
|
make check |
|
|
|
|
sudo make install |
|
|
|
|
sudo ldconfig # refresh shared library cache. |
|
|
|
|
``` |
|
|
|
|
If "make check" fails, you can still install, but it is likely that |
|
|
|
|
some features of this library will not work correctly on your system. |
|
|
|
|
Proceed at your own risk. |
|
|
|
@ -83,10 +85,12 @@ Protocol Buffers integrates with pkg-config to manage this. If you |
|
|
|
|
have pkg-config installed, then you can invoke it to get a list of |
|
|
|
|
flags like so: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pkg-config --cflags protobuf # print compiler flags |
|
|
|
|
pkg-config --libs protobuf # print linker flags |
|
|
|
|
pkg-config --cflags --libs protobuf # print both |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For example: |
|
|
|
|
|
|
|
|
|
c++ my_program.cc my_proto.pb.cc `pkg-config --cflags --libs protobuf` |
|
|
|
@ -97,6 +101,7 @@ not pass the correct set of flags to correctly link against |
|
|
|
|
libprotobuf. If the package in question uses autoconf, you can |
|
|
|
|
often fix the problem by invoking its configure script like: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configure CXXFLAGS="$(pkg-config --cflags protobuf)" \ |
|
|
|
|
LIBS="$(pkg-config --libs protobuf)" |
|
|
|
|
|
|
|
|
@ -118,15 +123,15 @@ of "protobuf" in these examples. |
|
|
|
|
For a Mac system, Unix tools are not available by default. You will first need |
|
|
|
|
to install Xcode from the Mac AppStore and then run the following command from |
|
|
|
|
a terminal: |
|
|
|
|
|
|
|
|
|
$ sudo xcode-select --install |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
sudo xcode-select --install |
|
|
|
|
```shell |
|
|
|
|
To install Unix tools, you can install "port" following the instructions at |
|
|
|
|
https://www.macports.org . This will reside in /opt/local/bin/port for most |
|
|
|
|
Mac installations. |
|
|
|
|
|
|
|
|
|
$ sudo /opt/local/bin/port install autoconf automake libtool |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
sudo /opt/local/bin/port install autoconf automake libtool |
|
|
|
|
``` |
|
|
|
|
Then follow the Unix instructions above. |
|
|
|
|
|
|
|
|
|
**Note for cross-compiling** |
|
|
|
|