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

M1 Mac使用vrf crate链接OpenSSL失败:架构不匹配求助

解决M1 Mac上x86_64编译环境下vrf crate 0.2.4链接OpenSSL架构不匹配问题

问题核心是你在x86_64架构的编译环境中,尝试链接了arm64版本的OpenSSL库,导致架构不兼容被忽略,进而出现未定义符号错误。以下是针对性的解决步骤:

1. 安装x86_64架构的OpenSSL

通过Rosetta 2启动终端(右键终端→显示简介→勾选"使用Rosetta打开"),在这个x86_64环境下安装对应架构的OpenSSL:

arch -x86_64 brew install openssl@3

Rosetta环境下的brew默认将软件安装在/usr/local/opt目录,而非arm64环境的/opt/homebrew,这一步能确保你拿到x86_64版本的OpenSSL库。

2. 让Cargo定位到x86_64版本的OpenSSL

设置环境变量,指定Cargo使用刚安装的x86_64 OpenSSL:

export OPENSSL_ROOT_DIR="/usr/local/opt/openssl@3"
export OPENSSL_LIB_DIR="/usr/local/opt/openssl@3/lib"
export OPENSSL_INCLUDE_DIR="/usr/local/opt/openssl@3/include"

也可以在项目根目录创建.cargo/config.toml文件,添加持久化配置:

[target.x86_64-apple-darwin]
rustflags = [
    "-C", "link-arg=-L/usr/local/opt/openssl@3/lib",
    "-C", "link-arg=-lssl",
    "-C", "link-arg=-lcrypto",
]

3. 确认Rust编译目标架构

检查当前Rust工具链的目标架构是否为x86_64-apple-darwin:

rustup show

如果不是,切换到对应架构的nightly版本:

rustup default nightly-x86_64-apple-darwin

4. 清理缓存并重新编译

执行清理操作后,重新构建项目:

cargo clean
cargo build

之前的操作无效是因为你在arm64环境下安装/链接的OpenSSL都是arm架构,和x86_64的编译环境不匹配,必须确保库和编译目标的架构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:40:44