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

M2芯片MacBook Pro执行cargo run报os error 2问题求助

解决M2 Mac上Rust二进制执行报"os error 2"的问题

你的问题核心是编译生成的x86_64架构二进制无法在ARM64(M2)的Mac上正常执行,报错"文件不存在"并非真的二进制文件缺失,而是系统找不到适配的运行时或依赖的动态库。以下是具体排查和解决步骤:

1. 确认当前Rust编译目标架构

执行以下命令查看默认编译目标:

rustup show

如果输出的默认target是x86_64-apple-darwin,说明你在Intel兼容模式下编译了二进制,M2芯片的Mac原生支持ARM64(aarch64-apple-darwin),跨架构执行时若依赖库不兼容就会触发该错误。

2. 切换到ARM64架构编译

  • 先安装ARM64的编译目标:
    rustup target add aarch64-apple-darwin
    
  • 用ARM64目标编译并运行:
    cargo run --target aarch64-apple-darwin
    

若此方式能正常运行,即可确认是架构不兼容导致的问题。

3. 检查项目是否依赖特定架构的外部工具

查看src/main.rs和src/csv.rs中是否通过std::process::Command等方式调用了外部二进制文件。如果有,需确保这些工具存在ARM64版本,且路径配置正确——若依赖的工具仅支持x86_64,也会触发类似错误。

4. 清理缓存后重新编译

缓存异常也可能导致编译产物异常,执行以下命令清理后重新编译:

cargo clean
cargo run

额外说明:终端兼容模式影响

若你的终端是通过Rosetta打开的(Intel兼容模式),rustup会默认使用x86_64的编译目标。检查终端设置:右键终端图标→显示简介,取消勾选"使用Rosetta打开",重启终端后再执行rustup show,默认target应切换为aarch64-apple-darwin。

关于你怀疑的命名规范问题:项目名somebinary完全符合Rust的命名要求,不是导致错误的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:32:33