MacM1(ARM)安装Protocol Buffers

MacM1(ARM)安装Protocol Buffers

本文目录

protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases

在运行./autogen.sh./configure命令时出现"No such file or directory"错误,是因为protobuf版本或构建方式的问题

3.21之前版本安装使用configure

如果没有configure需要先运行./autogen.sh生成

  • 配置

    powershell 复制代码
    ./configure
    // ./configure --prefix=/Users/xxx/protobuf(prefix 为安装目录,可自定义)

  • 编译和安装

    powershell 复制代码
    make
    powershell 复制代码
    sudo make install
  • 验证安装

    powershell 复制代码
    protoc --version
    libprotoc 3.21.12
  • 安装位置

    powershell 复制代码
    which protoc
    /usr/local/bin/protoc
  • 配置环境变量

    powershell 复制代码
    vim ~/.zshrc
    
    export PROTOBUF=/usr/local/bin/protoc
    export PATH=$PROTOBUF/bin:$PATH
    
    source ~/.zshrc

3.22之后版本安装使用cmake

  • 运行CMake配置

    powershell 复制代码
    cmake .
  • 报错,缺少 Abseil

    powershell 复制代码
    CMake Error at third_party/utf8_range/CMakeLists.txt:31 (add_subdirectory):
      The source directory
    
        /xxx/protobuf-25.0/third_party/abseil-cpp
    
      does not contain a CMakeLists.txt file.

    https://github.com/protocolbuffers/protobuf/issues/12016

    查看官方解释:cmake/README.md,需要下载Abseil

  • abseil-cpp下载

    官方github:https://github.com/abseil/abseil-cpp/releases

    单独安装:https://abseil.io/docs/cpp/quickstart-cmake#getting-the-abseil-code

  • 将abseil-cpp内容放入/third_party/abseil-cpp/目录下即可,不需要单独安装

  • 在源码路径下开始编译

    powershell 复制代码
    cmake . -DCMAKE_CXX_STANDARD=14
    
    // -Dprotobuf_BUILD_TESTS=OFF //配置CMake以跳过测试构建
    powershell 复制代码
    cmake --build .

    可以看到当前目录下已经可以查看编译完的protoc的版本了

  • 安装

    powershell 复制代码
    sudo make install

  • 查看安装位置和全局版本

    powershell 复制代码
    which protoc
    
    protoc --version

使用编译后的版本

不需要编译,直接使用,参考:https://grpc.io/docs/protoc-installation/

  • 选择对应平台下载 protoc-<version>-<os>-<arch>.zip

  • 解压

  • 命令行查看

    powershell 复制代码
    cd /Users/xx/protoc-25.0-osx-aarch_64/bin
    
    ./protoc --version
    libprotoc 25.0

将这个包放入自定义文件夹,设置环境变量即可

相关推荐
青花瓷3 小时前
苹果系统中利用活动监视器来终止进程
macos
Stark-C14 小时前
万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统
macos·docker·策略模式
Roc.Chang14 小时前
macos 使用 nvm 管理 node 并自定义安装目录
macos·node.js·nvm
丁总学Java15 小时前
ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)
arm开发·架构
三劫散仙18 小时前
Mac vscode 激活列编辑模式
macos
endingCode1 天前
45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题
javascript·macos·typescript
soulteary1 天前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
小江村儿的文杰1 天前
XCode Build时遇到 .entitlements could not be opened 的问题
ide·macos·ue4·xcode
天涯倦客的美丽人生2 天前
2024年11月最新 Alfred 5 Powerpack (MACOS)下载
macos
SoraLuna2 天前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie