• mac M1 pro 安装grpc 报错


    pecl install grpc
    # a few  moments later 。。。。
    
    # 执行 
    php -i | grep grpc
    
    ## 报错
    PHP Warning:  PHP Startup: Unable to load dynamic library 'grpc.so'
     (tried: /opt/homebrew/lib/php/pecl/20190902/grpc.so 
     (dlopen(/opt/homebrew/lib/php/pecl/20190902/grpc.so, 0x0009): tried:
      '/opt/homebrew/lib/php/pecl/20190902/grpc.so' (mach-o file, but is an
       incompatible architecture (have 'x86_64', need 'arm64e'))), 
      /opt/homebrew/lib/php/pecl/20190902/grpc.so.so 
      (dlopen(/opt/homebrew/lib/php/pecl/20190902/grpc.so.so, 0x0009): 
      tried: '/opt/homebrew/lib/php/pecl/20190902/grpc.so.so' (mach-o file,
       but is an incompatible architecture (have 'x86_64', need 
       'arm64e')))) in Unknown on line 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    have ‘x86_64’, need ‘arm64e’ 看来是cpu架构导致的

    uname -a | awk -F " " '{print $(NF-1)}'
    root:xnu-8020.121.3~4/RELEASE_ARM64_T6000
    
    • 1
    • 2
    哦 确实是 arm64

    继续尝试 ARCHFLAGS=“-arch arm64” 指定架构

    arch -arm64e sudo pecl install grpc
    
    
    
    • 1
    • 2
    • 3

    好了!!!

    ps:ARM64(也称为ARMv8-A)和x86-64(也称为x64或AMD64)是两种不同的计算机处理器架构,它们在物理设计、指令集和应用领域等方面存在一些关键区别。

    1. 指令集架构

      • ARM64:ARM64 架构是基于ARM指令集架构的,最初设计为移动设备和嵌入式系统,但现在也用于服务器和桌面计算机。
      • x86-64:x86-64 架构是基于x86指令集架构的64位扩展,最初是为桌面和服务器计算机设计的。
    2. 体系结构

      • ARM64:ARM64 架构是RISC(精简指令集计算机)架构,它采用了精简的指令集,执行指令速度较快,通常消耗更少的能量。
      • x86-64:x86-64 架构是CISC(复杂指令集计算机)架构,它使用了更多的指令,通常在执行相同数量的操作时消耗更多的能量。
    3. 生态系统

      • ARM64:ARM64 多年来主要用于移动设备、嵌入式系统和单板计算机,但也在服务器领域增长迅猛,尤其是在云计算中。
      • x86-64:x86-64 是桌面和服务器计算机的主导架构,具有庞大的生态系统和广泛的软件支持。
    4. 性能和功耗

      • ARM64:ARM64 架构通常倾向于在功耗方面表现得更出色,特别是在移动设备和嵌入式系统中。
      • x86-64:x86-64 架构在性能方面表现得较为出色,特别是在高性能计算和服务器领域。
    5. 兼容性

      • ARM64:ARM64 架构的应用程序通常需要专门编译或进行兼容性层(例如Rosetta 2)的支持,以在不同的处理器上运行。
      • x86-64:x86-64 应用程序在x86-64处理器上运行,而不需要额外的编译或兼容性支持。

    总的来说,ARM64和x86-64是两种不同的处理器架构,它们各自在不同的应用领域有各自的优势和劣势。选择哪种架构取决于特定应用的需求和硬件环境。

  • 相关阅读:
    MakeSense中文版使用手册【图像标注神器】
    Java开发从入门到精通(一):Docker
    【餐厅点餐平台|三】模块设计
    BDD - Gherkin Language
    docker network 组件内网
    【笔者感悟】笔者的学习感悟【六】
    java计算机毕业设计微服务的高校二手交易平台源程序+mysql+系统+lw文档+远程调试
    Java并发编程的艺术笔记-线程中的锁
    h3c 网络设备清理所有配置
    信息检索与数据挖掘|(四)索引构建
  • 原文地址:https://blog.csdn.net/chai471793/article/details/133863666