mac M1 pro 安装grpc 报错

bash 复制代码
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

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

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

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

bash 复制代码
arch -arm64e sudo pecl install grpc

好了!!!

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是两种不同的处理器架构,它们各自在不同的应用领域有各自的优势和劣势。选择哪种架构取决于特定应用的需求和硬件环境。

相关推荐
2601_9618454216 分钟前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
Allen Su3 小时前
【Mac 教程系列第 20 篇】macOS 鼠须管(Squirrel)皮肤大全(持续更新)
macos·rime·squirrel·rime 输入法皮肤大全
Jinkxs3 小时前
Python基础 - 初识内置函数 Python自带的便捷工具
android·java·python
私人珍藏库3 小时前
【Android】VLLO-韩国热门手机剪辑APP
android·app·工具·软件·多功能
Cloud_Shy6184 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
AFinalStone5 小时前
Android12 U盘插拔链路源码全解析(五):Framework层(下) StorageManagerService
android·frameworks
LinMin_Rik6 小时前
Mac上获取私钥证书P12文件(也可以给win11的HbuilderX使用)
macos
林九生6 小时前
【实用技巧】MySQL 绿色版一键路径更新脚本详解 —— update_path.bat 深度解析
android·数据库·mysql
故渊at7 小时前
第十三板块:Android 综合架构与未来演进 | 第三十一篇:Android 架构演进与 Fuchsia OS 的挑战
android·架构·宏内核·微内核·fuchsia·ipc 性能博弈
aqi007 小时前
一文速览 HarmonyOS 6.1.1 推出的十个新特性
android·华为·harmonyos·鸿蒙·harmony