參考:Ubuntu系統中本地編譯並安裝grpc的C++版本及測試 - 知乎 (zhihu.com)
安裝依賴:
# 這些可能都已經安裝了 sudo apt-get install pkg-config autoconf automake libtool make g++ unzip # 下面的可能沒安裝 sudo apt-get install libgflags-dev libgtest-dev sudo apt-get install clang libc++-dev
下載原始碼:
git clone -b v1.36.4 https://github.com/grpc/grpc.git cd grpc # 下載其依賴的子模組 git submodule update --init
先編譯安裝protobuf:
# 此時應在grpc資料夾下 cd third_party/protobuf/ # 更新依賴的子模組 git submodule update --init --recursive # 生成配置指令碼 sudo ./autogen.sh # 生成makefile檔案 sudo ./configure # 從makefile讀取指令編譯 sudo make # 可能報錯,但不影響安裝 sudo make check # 安裝 sudo make install # 更新共享庫快取 sudo ldconfig # 檢視安裝的位置 which protoc #檢視是否安裝成功,這裡輸出的protoc版本應該是3.14.0 protoc --version
繼續安裝grpc:
進入到grpc資料夾下# 建立編譯資料夾 mkdir -p cmake/build cd cmake/build cmake ../.. # 編譯 make -j3 # 安裝 sudo make install
測試安裝成功與否:
# 進入grpc資料夾下 cd examples/cpp/helloworld mkdir build cd build # 編譯 cmake .. make # 編譯完成後,在資料夾下就生成了可執行檔案,先執行 ./greeter_server # 再新開終端,執行 ./greeter_client # 會輸出:Greeter received: Hello world # 即安裝成功
如何使用:
參考上述示例中的cmakelist中的寫法,在自己的專案中包含 common.cmake。 可以把這個common.cmake複製到自己工程中。
包含後,再顯式連結一下相關庫: