protobuf新版下载安装
文章目录
- 新版本Protobuf 已从 Autotools 迁移到 CMake 构建系统
- 安装依赖
- 下载源码
- 检查是否已有 third_party 目录
- 若目录不存在,手动创建
- 下载 abseil-cpp
- 解压并重命名
- 继续下载 utf8_range 并重复类似步骤
- 正确的目录结构:
- 然后回到protobuf-26.1目录
- 生成 Makefile
- 编译并安装
- 验证
新版本Protobuf 已从 Autotools 迁移到 CMake 构建系统
所以新版本protobuf解压出来以后没有autogen.sh
安装依赖
sudo apt-get update
sudo apt-get install autoconf automake libtool curl make g++ unzip
下载源码
wget https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protobuf-26.1.tar.gz
tar -xzf protobuf-26.1.tar.gz
#进入protobuf-26.1目录
cd protobuf-26.1
检查是否已有 third_party 目录
ls -l third_party/
若目录不存在,手动创建
mkdir -p third_party
下载 abseil-cpp
wget https://github.com/abseil/abseilcpp/archive/refs/tags/20230802.0.tar.gz -O third_party/abseil-cpp.tar.gz
解压并重命名
cd third_party
tar -xzf abseil-cpp.tar.gz
mv abseil-cpp-20230802.0 abseil-cpp
cd ..
继续下载 utf8_range 并重复类似步骤
wget https://github.com/protocolbuffers/utf8_range/archive/refs/tags/v1.0.0.tar.gz -O third_party/utf8_range.tar.gz
cd third_party
tar -xzf utf8_range.tar.gz
mv utf8_range-1.0.0 utf8_range
cd ..
正确的目录结构:
third_party/
├── abseil-cpp/
│ ├── CMakeLists.txt
│ └── ...
└── utf8_range/
├── CMakeLists.txt
└── ...
然后回到protobuf-26.1目录
mkdir build && cd build
生成 Makefile
# 禁用测试以加速编译
cmake .. -Dprotobuf_BUILD_TESTS=OFF
编译并安装
make -j$(nproc)
sudo make install
sudo ldconfig
验证
protoc --version