整體流程為:下載代碼 -> 編譯&安裝依賴庫 -> 編譯&安裝grpc -> 測試。
1. 安裝openssl
安裝
wget https://www.openssl.org/source/openssl-1.1.1b.tar.gz tar -xvf openssl-1.1.1b.tar.gz cd openssl-1.1.1b ./config --prefix=/usr/local --openssldir=/usr/local/openssl make && make install
驗證:
openssl version -a
2. 安裝cmake
安裝:
wget https://cmake.org/files/v3.17/cmake-3.17.2.tar.gz tar zxvf cmake-3.17.2.tar.gz cd cmake-3.17.2 ./configure sudo make && make install
驗證方式:
cmake --version
3. 下載grpc
sudo apt install -y build-essential autoconf libtool pkg-config
git clone https://github.com/grpc/grpc.git cd grpc git submodule update --init
4. 安裝absl依賴
sudo apt-get update && sudo apt-get install -y libssl-dev cd third_party/abseil-cpp/cmake mkdir build sudo cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. sudo make install
5. 安裝c-ares
cd third_party/cares/cares mkdir build cd build sudo cmake -DCMAKE_BUILD_TYPE=Release .. sudo make install
6. 安裝benchmark依賴
cmake -DCMAKE_BUILD_TYPE=Release ..
如果發現找不到gtest庫,需要增加參數指定目錄: -DGOOGLETEST_PATH=~/grpc/third_party/googletest
7. 安裝protobuf
cd third_party/protobuf/ git submodule update --init --recursive sudo ./autogen.sh sudo ./configure sudo make
sudo make install
sudo ldconfig
驗證方式: protoc --version
8. 安裝zlib
cdthird_party/zlib mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make install
9. 安裝grpc
cd ../.. sudo make
sudo make install
異常處理:
在sudo make install后出錯:Installing via 'make' is no longer supported. Use cmake or bazel instead.
sudo cmake -DCMAKE_BUILD_TYPE=Release \
-DgRPC_INSTALL=ON \
-DgRPC_BUILD_TESTS=OFF \
-DgRPC_CARES_PROVIDER=package \
-DgRPC_ABSL_PROVIDER=package \
-DgRPC_PROTOBUF_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package \
-DgRPC_ZLIB_PROVIDER=package ..
10. 測試
cd grpc/examples/cpp/helloworld
make
./greeter_server
./greeter_client
整個流程參考:https://blog.csdn.net/w13l14/article/details/117984322
參考:https://github.com/IvanSafonov/grpc-cmake-example