1. 安装依赖
在编译之前,确保系统中安装了必要的依赖工具和库。运行以下命令安装:
sudo apt update
sudo apt install -y build-essential curl cmake autoconf automake libtool unzip git
这些工具包括:
build-essential
: 提供 GCC 编译器和其他开发工具。autoconf
,automake
,libtool
: 用于生成 Makefile。curl
,unzip
: 用于下载和解压文件。
2. 下载 protobuf-3.11.2
如果还没有下载源码,可以通过以下命令获取:
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protobuf-cpp-3.11.2.tar.gz
tar -xzf protobuf-cpp-3.11.2.tar.gz
cd protobuf-3.11.2
如果你已经有了源码压缩包,直接解压即可。
3. 配置和编译
(1) 执行 autogen.sh
进入解压后的目录,运行 autogen.sh
脚本来生成配置文件:
./autogen.sh
(2) 配置编译环境
运行 configure
脚本来配置编译选项:
./configure
如果你想指定安装路径(例如 /usr/local/protobuf
),可以使用 --prefix
参数:
./configure --prefix=/home/protobuf-3.11.2/build
(3) 编译
创建并进入构建目录
为了保持源代码目录的整洁,建议在一个新的目录中进行编译:
mkdir -p build && cd build
运行以下命令进行编译:
make -j$(nproc)
-j$(nproc)
参数会根据 CPU 核心数并行编译,加快速度。
(4) 安装
编译完成后,安装到系统中:
sudo make install
如果你指定了 --prefix
参数,安装路径会是你指定的路径。
4. 配置环境变量
如果安装路径不是默认的 /usr/local
,需要将安装路径添加到环境变量中。
编辑 ~/.bashrc
或 ~/.zshrc
文件:
export PATH=/home/protobuf-3.11.2/build/bin:$PATH
export LD_LIBRARY_PATH=/home/protobuf-3.11.2/build/lib:$LD_LIBRARY_PATH
然后重新加载配置文件:
source ~/.bashrc
或者对于 Zsh 用户:
source ~/.zshrc
5. 验证安装
运行以下命令验证安装是否成功:
protoc --version
输出应该类似于:
libprotoc 3.11.2
6. 清理(可选)
如果不再需要编译过程中的临时文件,可以清理它们:
make clean
注意事项
- gRPC 支持:如果你还需要支持 gRPC,请确保安装了
grpc
和相关依赖。 - 多版本冲突:如果系统中已有其他版本的
protobuf
,可能会导致冲突。建议通过--prefix
指定独立的安装路径。 - C++11 支持:确保你的编译器支持 C++11(GCC 版本 >= 4.8)。