
一、在 Windows 下的安装
1、下载 ProtoBuf 编译器
下载地址:https://github.com/protocolbuffers/protobuf/releases可以不用下载最新版本,下面以 v21.11 为例,具体的下载根据自己电脑情况选择。
| 文件名 | 大小 | 发布日期 |
|---|---|---|
| protoc-21.11-osx-x86_64.zip | 1.42MB | Dec 8, 2022 |
| protoc-21.11-win32.zip | 2.2MB | Dec 8, 2022 |
| protoc-21.11-win64.zip | 2.17MB | Dec 8, 2022 |

下载之后将压缩包解压到本地目录下。解压后的文件内包含 bin、include 文件,以及一个 readme.txt。
| 名称 | 类型 |
|---|---|
| bin | 文件夹 |
| include | 文件夹 |
| readme.txt | 文本文档 |
2、配置环境变量
把解压后文件中的 bin 目录配置到系统环境变量的 Path 中去。
环境变量配置步骤:
- 打开环境变量设置窗口(可通过 "此电脑" 右键 "属性"→"高级系统设置"→"环境变量" 打开)。
- 在 "系统变量" 中找到 Path 变量,点击 "编辑"。
- 点击 "新建",将解压后 bin 目录的路径(例如:D:\protoc-21.11-win64\bin)添加进去。
- 点击 "确定" 保存配置。

3、检查是否配置成功
打开 cmd,输入以下命令:
bash
protoc --version
若显示版本信息(如:libprotoc 3.21.11),说明配置成功。
bash
Microsoft Windows [版本 10.0.19045.2604]
(c) Microsoft Corporation。保留所有权利。
C:\Users>protoc --version
libprotoc 3.21.11
C:\Users>
走到这里,恭喜你 ProtoBuf 安装成功!!!
二、ProtoBuf 在 Linux 下的安装
1、下载 ProtoBuf
(1)安装依赖库
下载 ProtoBuf 前一定要安装依赖库:autoconf automake libtool curl make g++ unzip。如未安装,根据系统类型执行以下安装命令:
- Ubuntu 用户:
bash
sudo apt-get install autoconf automake libtool curl make g++ unzip -y
- CentOS 用户:
bash
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
(2)下载 ProtoBuf 安装包
下载地址:https://github.com/protocolbuffers/protobuf/releases可以不用下载最新版本,课件以 v21.11 为例,具体的下载根据自己电脑情况选择。
| 文件名 | 大小 | 发布日期 | 适用场景 |
|---|---|---|---|
| protobuf-all-21.11.tar.gz | 7.31MB | Dec 10, 2022 | 支持全部语言 |
| protobuf-all-21.11.zip | 9.29MB | Dec 8, 2022 | 支持全部语言 |
| protobuf-cpp-3.21.11.tar.gz | 4.63MB | Dec 10, 2022 | C++ 语言 |
| protobuf-cpp-3.21.11.zip | 5.62MB | Dec 8, 2022 | C++ 语言 |
| protobuf-csharp-3.21.11.tar.gz | 5.35MB | Dec 10, 2022 | C# 语言 |
| protobuf-csharp-3.21.11.zip | 6.58MB | Dec 8, 2022 | C# 语言 |
| protobuf-java-3.21.11.tar.gz | 5.32MB | Dec 10, 2022 | Java 语言 |
| protobuf-java-3.21.11.zip | 6.67MB | Dec 8, 2022 | Java 语言 |
| protobuf-objectivec-3.21.11.tar.gz | 4.99MB | Dec 10, 2022 | Objective-C 语言 |
| protobuf-objectivec-3.21.11.zip | 6.12MB | Dec 8, 2022 | Objective-C 语言 |
| protobuf-php-3.21.11.tar.gz | 4.94MB | Dec 10, 2022 | PHP 语言 |
| protobuf-php-3.21.11.zip | 6.05MB | Dec 8, 2022 | PHP 语言 |
| protobuf-python-4.21.11.tar.gz | 4.99MB | Dec 10, 2022 | Python 语言 |
| protobuf-python-4.21.11.zip | 6.05MB | Dec 8, 2022 | Python 语言 |
| protobuf-ruby-3.21.11.tar.gz | 4.87MB | Dec 10, 2022 | Ruby 语言 |
| protobuf-ruby-3.21.11.zip | 5.91MB | Dec 8, 2022 | Ruby 语言 |
选择说明:
- 若要在 C++ 下使用 ProtoBuf,选择 cpp 相关压缩包;
- 若要在 Java 下使用 ProtoBuf,选择 java 相关压缩包;
- 其他语言选择对应的链接即可;
- 希望支持全部语言,选择 all 相关压缩包。
下载与解压操作:
这里以支持全部语言为例,选择 protobuf-all-21.11.zip,执行以下命令:
下载安装包:
bash
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
解压 zip 包:
bash
unzip protobuf-all-21.11.zip
进入解压后的目录:
bash
cd protobuf-21.11
解压后目录内容如下:
bash
lfz@139-159-150-152:~/install/protobuf-21.11$ ls
CMakeLists.txt CONTRIBUTING.md examples Makefile.am protobuf.bzl protobuf_version.bzl third_party
CONTRIBUTORS.txt depcomp generate_descriptor_proto.sh m4 protobuf_deps.bzl README.md util
build_files_updated_unittest.sh editors global.json missing protobuf-lite.pc.in ruby update_file_lists.sh
config.sub conformance install-sh objectivec protobuf.pc.in src util
configure csharp java php protobuf.podspec test-driver WORKSPACE
configure.ac depcomp ltmain.sh python protobuf_release.bzl third_party protobuf_deps.bzl
LICENSE docs maven_install.json protobuf_version.bzl protobuf-test test-driver update_file_lists.sh
2、安装 ProtoBuf
进入解压好的文件目录,执行以下命令:
第一步:执行 autogen.sh(仅全部语言版本需要,单一语言版本无需执行)
bash
./autogen.sh
第二步:执行 configure(二选一)
默认安装(安装在 /usr/local 目录,lib、bin 分散):
bash
./configure
自定义安装目录(统一安装在 /usr/local/protobuf 下):
bash
./configure --prefix=/usr/local/protobuf
第三步:依次执行以下命令
bash
# 执行测试(约15分钟左右,若报错可参考下方解决方法)
make check
# 执行安装
sudo make install
make check 报错处理:
部分用户可能在执行 make check 时出现错误,示例如下:
bash
make[2]: Leaving directory /home/hzh/protobuf-21.11/src
make check-TESTS
make[2]: Entering directory '/home/hzh/protobuf-21.11/src'
make[3]: Entering directory '/home/hzh/protobuf-21.11/src'
FAIL: protobuf-test
PASS: protobuf-lazy-descriptor-test
PASS: protobuf-lite-test
PASS: google/protobuf/compiler/zip_output_unittest.sh
PASS: google/protobuf/io/gzip_stream_unittest.sh
PASS: protobuf-lite-arena-test
PASS: no-warning-test
make[4]: Entering directory '/home/hzh/protobuf-21.11/src'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/hzh/protobuf-21.11/src'
Testsuite summary for Protocol Buffers 3.21.11
# TOTAL: 7
# PASS: 6
# XFAIL: 0
# SKIP: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
See src/test-suite.log
Please report to protobuf@googlegroups.com
make[3]: *** [test-suite.log] Error 1
make[3]: Leaving directory '/home/hzh/protobuf-21.11/src'
make[2]: *** [check-TESTS] Error 2
报错原因及解决方法:
报错原因是 test 模块的测试用例对服务器环境要求严格,需要增大 swap 分区。具体操作参考:https://blog.csdn.net/AlexWang30/article/details/90341172建议:先扩大 3G swap 分区,再执行 make check;若仍报错,扩大到 5G 后重新执行。
成功标志:
执行 make check 后,显示以下内容即测试通过,可继续执行 sudo make install:
bash
PASS: protobuf-test
PASS: protobuf-lazy-descriptor-test
PASS: protobuf-lite-test
PASS: google/protobuf/compiler/zip_output_unittest.sh
PASS: google/protobuf/io/gzip_stream_unittest.sh
PASS: protobuf-lite-arena-test
PASS: no-warning-test
Testsuite summary for Protocol Buffers 3.21.11
# TOTAL: 7
# PASS: 7
# XFAIL: 0
# SKIP: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
make[3]: Leaving directory '/home/hyb/protobuf-3.21.11/src'
make[2]: Leaving directory '/home/hyb/protobuf-3.21.11/src'
make[1]: Leaving directory '/home/hyb/protobuf-3.21.11/src'
第四步:配置环境变量(仅自定义安装目录时需要)
若执行 configure 时选择了自定义安装目录(./configure --prefix=/usr/local/protobuf),需在 /etc/profile 中添加以下内容:
编辑 /etc/profile 文件:
bash
sudo vim /etc/profile
在文件末尾添加以下内容:
bash
# 动态库搜索路径:程序加载运行期间查找动态链接库时指定除系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
# 静态库搜索路径:程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
# 执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
# C程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
# C++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
# pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
保存并退出编辑(vim 中输入 :wq 回车)。
重新执行 /etc/profile 文件,使配置生效:
bash
source /etc/profile
3、检查是否安装成功
输入以下命令查看版本,有显示说明安装成功:
bash
protoc --version
示例:
bash
hyb@139-159-150-152:~/install/protobuf-21.11$ protoc --version
libprotoc 3.21.11
走到这里,恭喜你 ProtoBuf 安装成功!!!