使用brew安装最新的protobuf
在Mac 上安装,使用brew 可以安装最新的protobuf。这个也比较简单,简单说一下。
- 首先先检查一下是否安装了brew。如果没有安装brew的话,请先安装brew.可以通过
brew --version
来检查
- 使用
brew install protobuf 来安装
protobuf - 安装完成以后,可以使用
protoc --version
来检查是否安装成功。如果正确输出了 版本号,则代表安装成功了。 - 如果想卸载的话,直接执行
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。
你可以执行:
brew uninstall sphinx
以及
brew uninstall mysql@5.7
最后执行
brew uninstall protobuf
然后就可以执行卸载了protobuf了。
安装指定版本的protobuf
使用上面的方式,只能安装最新版本的protobuf。如果想安装指定版本的protobuf的话,我们可以通过源码的方式进行安装。
- 先github上下载指定版本的源码 到本地。例如:3.21.12版本
将它下载到某个文件夹下。例如:我放在$HOME/programs/protobuf
。如果你本地没有这个文件夹的话,可以使用mkdir 命令去创建一个。
如果使用系统默认的安装目录的话,你可能遇到如下的错误:
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
- 在
$HOME/programs/protobuf
目录下,解压刚才下载的tar.gz文件
tar -zxvf protobuf-3.21.12.tar.gz
- 进入到解压后的源码目录下:
cd protobuf-3.21.12
- 检测安装环境是否满足条件,生成Makefile。注意使用如下目录
./configure --prefix=$HOME/programs/protobuf
如果你在执行这个命令的后,发现有报错
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
./autogen.sh
- 编译和安装
make && make install
- 添加环境变量
安装成功以后,就需要添加环境变量。添加环境变量时,需要注意你是使用的zsh,还是系统自带的命令行终端。
如果是系统的命令行终端:在系统根目录下找到.bash_profile 文件,在该文件下修改
cd ~
vim .bash_profile
export PROTOBUF=$HOME/programs/protobuf
export PATH=$PROTOBUF/bin:$PATH
source .bash_profile
如果是zsh终端也是类似的,只是在 .zshrc 文件下修改。
cd ~
vim .zshrc
export PROTOBUF=$HOME/programs/protobuf
export PATH=$PROTOBUF/bin:$PATH
source .
- 执行
protoc --version
验证
能正确输处版本号,就代表安装成功了。