ubuntu編譯grpc & protobuf

xcywt發表於2024-09-18

參考: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複製到自己工程中。

包含後,再顯式連結一下相關庫:

相關文章