You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片(Arm64)环境下Rust项目依赖ZeroMQ编译失败问题

解决Rust与ZeroMQ架构不匹配的链接问题

方案1:切换Rust编译目标为Arm64(推荐)

既然你已经安装了Arm64版本的ZeroMQ,让Rust编译Arm64程序即可匹配架构:

  • 添加Arm64编译目标:
    rustup target add aarch64-apple-darwin
    
  • 编译时指定目标架构:
    cargo build --target aarch64-apple-darwin
    

方案2:安装x86_64版本的ZeroMQ并在x86环境编译

若需要保持Rust以x86_64编译,可通过Rosetta终端安装对应版本的ZeroMQ:

  • 右键终端图标,选择使用Rosetta打开,进入x86_64运行环境
  • 安装x86版本的Homebrew(未安装时执行):
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  • 在该终端下安装x86版本的ZeroMQ:
    brew install zeromq
    
  • 直接在这个x86终端中运行cargo build,编译出的x86_64程序会自动链接对应架构的ZeroMQ库

方案3:临时指定x86库路径编译

若已安装x86版本的ZeroMQ(默认路径为/usr/local/lib),可在编译时手动指定库路径:

LIBRARY_PATH=/usr/local/lib cargo build

问题说明

当前Rust通过Rosetta以x86_64架构运行,但ZeroMQ为Arm64版本,导致链接阶段因架构不匹配报错。直接用arch -x86_64 brew install zeromq失败,是因为brew会强制匹配终端运行的架构,需通过Rosetta启动的终端才能安装x86版本的依赖。

内容的提问来源于stack exchange,提问作者joethemow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:40:32