记录protocol buffers Mac安装

使用brew安装最新的protobuf

在Mac 上安装,使用brew 可以安装最新的protobuf。这个也比较简单,简单说一下。

  1. 首先先检查一下是否安装了brew。如果没有安装brew的话,请先安装brew.可以通过brew --version来检查
  2. 使用brew install protobuf 来安装 protobuf
  3. 安装完成以后,可以使用protoc --version 来检查是否安装成功。如果正确输出了 版本号,则代表安装成功了。
  4. 如果想卸载的话,直接执行 brew uninstall protobuf 。如果在中途遇到了类似的错误,比如:
    Error: Refusing to uninstall /usr/local/Cellar/protobuf/23 because it is required by mysql@5.7 and sphinx, which are currently installed. You can override this and force removal with: brew uninstall --ignore-dependencies protobuf

因为protobuf依赖了mysql@5.7 和 sphinx 这两个库,所以你需要先卸载 这两个库,才能卸载protobuf。

你可以执行:

powershell 复制代码
brew uninstall sphinx

以及

powershell 复制代码
brew uninstall mysql@5.7

最后执行

powershell 复制代码
brew uninstall protobuf

然后就可以执行卸载了protobuf了。

安装指定版本的protobuf

使用上面的方式,只能安装最新版本的protobuf。如果想安装指定版本的protobuf的话,我们可以通过源码的方式进行安装。

  1. 先github上下载指定版本的源码 到本地。例如:3.21.12版本

将它下载到某个文件夹下。例如:我放在$HOME/programs/protobuf 。如果你本地没有这个文件夹的话,可以使用mkdir 命令去创建一个。

如果使用系统默认的安装目录的话,你可能遇到如下的错误:

powershell 复制代码
bcms436-sv1:protobuf-3.21.12 ytan$ make install
Making install in .
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/lib/pkgconfig" || ./install-sh -c -d "/usr/lib/pkgconfig"
 /usr/bin/install -c -m 644 protobuf.pc protobuf-lite.pc '/usr/lib/pkgconfig'
install: /usr/lib/pkgconfig/protobuf.pc: Permission denied
make[2]: *** [install-pkgconfigDATA] Error 71
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1
  1. $HOME/programs/protobuf 目录下,解压刚才下载的tar.gz文件
powershell 复制代码
tar -zxvf protobuf-3.21.12.tar.gz
  1. 进入到解压后的源码目录下:
powershell 复制代码
cd protobuf-3.21.12
  1. 检测安装环境是否满足条件,生成Makefile。注意使用如下目录
powershell 复制代码
./configure --prefix=$HOME/programs/protobuf

如果你在执行这个命令的后,发现有报错

powershell 复制代码
CXXLD libprotobuf.la
CXXLD libprotoc.la
CXXLD protoc
./.libs/libprotoc.so: error: undefined reference to 'xxxx'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:3990:protoc]

那么可以先执行./autogen.sh 命令,再执行 ./configure --prefix=$HOME/programs/protobuf

powershell 复制代码
./autogen.sh
  1. 编译和安装
powershell 复制代码
make && make install
  1. 添加环境变量

安装成功以后,就需要添加环境变量。添加环境变量时,需要注意你是使用的zsh,还是系统自带的命令行终端。

如果是系统的命令行终端:在系统根目录下找到.bash_profile 文件,在该文件下修改

powershell 复制代码
cd ~

vim .bash_profile
export PROTOBUF=$HOME/programs/protobuf
export PATH=$PROTOBUF/bin:$PATH
source .bash_profile

如果是zsh终端也是类似的,只是在 .zshrc 文件下修改。

powershell 复制代码
cd ~
vim .zshrc
export PROTOBUF=$HOME/programs/protobuf
export PATH=$PROTOBUF/bin:$PATH
source .
  1. 执行 protoc --version 验证

能正确输处版本号,就代表安装成功了。

相关推荐
endingCode2 小时前
45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题
javascript·macos·typescript
dr李四维3 小时前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
️ 邪神3 小时前
【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View
flutter·ios·鸿蒙·reactnative·anroid
soulteary4 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
小江村儿的文杰14 小时前
XCode Build时遇到 .entitlements could not be opened 的问题
ide·macos·ue4·xcode
比格丽巴格丽抱15 小时前
flutter项目苹果编译运行打包上线
flutter·ios
网络安全-老纪16 小时前
iOS应用网络安全之HTTPS
web安全·ios·https
天涯倦客的美丽人生16 小时前
2024年11月最新 Alfred 5 Powerpack (MACOS)下载
macos
SoraLuna16 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
总爱写点小BUG17 小时前
VM虚拟机装MAC后无法联网,如何解决?
macos