一、单版本装置

# 1) brew装置brew install protobuf # 查看装置目录$ which protoc /opt/homebrew/bin/protoc # 2) 配置环境变量vim ~/.zshrc# protoc (for hadoop)export PROTOC="/opt/homebrew/bin/protoc"source ~/.zshrc# 3) 查看protobuf版本$ protoc --versionlibprotoc 3.19.1

二、多版本装置

如同时装置 protoc2 和 protoc3
上面演示已装置 protoc3,再装置 protoc2

1、将 protoc v3 命令重命名

# brew 命令的软连贯批改cd /opt/homebrew/bin/mv protoc protoc3# 批改环境变量vim ~/.zshrc#export PROTOC="/opt/homebrew/bin/protoc"# 批改为export PROTOC3="/opt/homebrew/bin/protoc3"source ~/.zshrc# 查看成果$ protoc3 --versionlibprotoc 3.19.1$ which protoc3/opt/homebrew/bin/protoc3

2、装置 protoc v2

# 下载wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz# 解压tar xvf protobuf-2.5.0.tar.gz

如果是 m1 型号的,需减少 arm 相干配置

在 src/google/protobuf/stubs/platform_macros.h 文件中找到#else#error Host architecture was not detected as supported by protobuf在下面代码的上方增加#elif defined(__arm64__)#define GOOGLE_PROTOBUF_ARCH_ARM 1#define GOOGLE_PROTOBUF_ARCH_64_BIT 1

增加后成果:
<img src="https://cdn.nlark.com/yuque/0/2022/png/21670600/1667200962353-490fe607-5cad-4e78-bf0f-585023dfa634.png" alt="image.png" style="zoom:33%;" />

装置 protoc2.5.0:

# 会默认装置到 /usr/local/bin./configure# 如果要指定装置门路,执行(homebrew 改为本人的门路):# ./configure --prefix=/opt/homebrew/Cellar/protobuf/2.5.0makemake checksudo make install # 最初 install 可能须要 sudo 权限# 如果批改到了brew门路,需再增加环境变量brew link protobuf

查看版本

$ protoc --versionlibprotoc 2.5.0$ which protoc/usr/local/bin/protoc

参考文章:
Mac M1中Idea编译hadoop2.6.0流程
Hadoop - macOS 上编译 Hadoop 3.2.1