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

Mac ARM64环境下Rust+Diesel编译报错:找不到ssl库求助

解决Mac ARM64下Rust Diesel编译ld: library 'ssl' not found错误

问题根源

Mac ARM64架构下,Homebrew安装的OpenSSL默认不在系统链接器的搜索路径里,而Diesel依赖的MySQL客户端库需要调用OpenSSL,导致编译时找不到ssl库。

解决方法

1. 定位OpenSSL安装路径

执行命令获取openssl@3的具体位置:

brew --prefix openssl@3

ARM64架构的Homebrew默认输出为/opt/homebrew/opt/openssl@3,记好这个路径。

2. 临时配置环境变量(单次生效)

在当前终端运行以下命令,让cargo编译时能找到OpenSSL:

export OPENSSL_DIR=$(brew --prefix openssl@3)
export LDFLAGS="-L$(brew --prefix openssl@3)/lib"
export CPPFLAGS="-I$(brew --prefix openssl@3)/include"

之后执行cargo run即可尝试重新编译。

3. 永久配置环境变量(长期生效)

如果临时配置有效,把变量写入shell配置文件,避免每次手动输入:

  • 使用zsh的话,编辑~/.zshrc:
echo 'export OPENSSL_DIR=$(brew --prefix openssl@3)' >> ~/.zshrc
echo 'export LDFLAGS="-L$(brew --prefix openssl@3)/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I$(brew --prefix openssl@3)/include"' >> ~/.zshrc

执行source ~/.zshrc让配置立即生效。

  • 使用bash的话,编辑~/.bash_profile或~/.bashrc,步骤同上。

4. 检查Diesel依赖配置

确认Cargo.toml中diesel的特性配置正确,示例如下:

diesel = { version = "2.1", features = ["mysql", "chrono"] }

若遗漏相关特性可能引发连锁问题,但核心仍为OpenSSL路径问题。

5. 清理缓存重新构建

若以上步骤无效,清理cargo缓存后重新构建:

cargo clean
cargo run

额外提示

  • 不要执行brew install ssl,Homebrew中不存在名为ssl的包,正确包名为openssl或openssl@3。
  • Mac ARM64的Homebrew默认安装路径为/opt/homebrew,与Intel架构的/usr/local不同,这是常见踩坑点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:00:54