$ [sudo] apt-get install build-essential autoconf libtool pkg-config
If you plan to build from source and run tests, install the following as well:
$ [sudo] apt-get install libgflags-dev libgtest-dev $ [sudo] apt-get install clang libc++-dev
On a Mac, you will first need to install Xcode or Command Line Tools for Xcode and then run the following command from a terminal:
$ [sudo] xcode-select --install
To build gRPC from source, you may need to install the following packages from Homebrew:
$ brew install autoconf automake libtool shtool
If you plan to build from source and run tests, install the following as well:
$ brew install gflags
Tip: when building, you may want to explicitly set the LIBTOOL
and LIBTOOLIZE
environment variables when running make
to ensure the version installed by brew
is being used:
$ LIBTOOL=glibtool LIBTOOLIZE=glibtoolize make
To prepare for cmake + Microsoft Visual C++ compiler build
choco install activeperl
) - required by boringsslchoco install golang
) - required by boringsslPATH
(choco install yasm
) - required by boringsslchoco install ninja
)By default gRPC uses protocol buffers, you will need the protoc
compiler to generate stub server and client code.
If you compile gRPC from source, as described below, the Makefile will automatically try compiling the protoc
in third_party if you cloned the repository recursively and it detects that you do not already have 'protoc' compiler installed.
If 'protoc' compiler has not been installed, following commands can be used for installation.
$ cd grpc/third_party/protobuf $ sudo make install # 'make' should have been run by core grpc
Before building, you need to clone the gRPC github repository and download submodules containing source code for gRPC's dependencies (that's done by the submodule
command or --recursive
flag). The following commands will clone the gRPC repository at the latest stable version.
$ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc $ cd grpc $ git submodule update --init
> @rem You can also do just "git clone --recursive -b THE_BRANCH_YOU_WANT https://github.com/grpc/grpc" > powershell git clone --recursive -b ((New-Object System.Net.WebClient).DownloadString(\"https://grpc.io/release\").Trim()) https://github.com/grpc/grpc > cd grpc > @rem To update submodules at later time, run "git submodule update --init"
In the C++ world, there's no "standard" build system that would work for in all supported use cases and on all supported platforms. Therefore, gRPC supports several major build systems, which should satisfy most users.
From the grpc repository root
$ make
See Installing Bazel for instructions how to install bazel on your system.
From the grpc repository root
$ bazel build :all
When using the "Visual Studio" generator, cmake will generate a solution (grpc.sln
) that contains a VS project for every target defined in CMakeLists.txt
(+ few extra convenience projects added automatically by cmake). After opening the solution with Visual Studio you will be able to browse and build the code.
> @rem Run from grpc directory after cloning the repo with --recursive or updating submodules. > md .build > cd .build > cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release > cmake --build .
Please note that when using Ninja, you will still need Visual C++ (part of Visual Studio) installed to be able to compile the C/C++ sources.
> @rem Run from grpc directory after cloning the repo with --recursive or updating submodules. > md .build > cd .build > call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x64 > cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release > cmake --build .