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

添加aws-sdk-rust依赖失败,无法检测OpenSSL版本如何解决?

解决OpenSSL v0.9.24构建失败(无法检测版本)的问题

1. 检查系统OpenSSL版本兼容性

openssl v0.9.24属于较旧的依赖版本,可能和你当前系统安装的OpenSSL(1.1.x或3.x版本)不兼容。先确认系统的OpenSSL版本:

openssl version

如果版本不匹配,要么升级依赖版本,要么指定兼容的OpenSSL路径。

2. 强制更新openssl-sys依赖

在Cargo.toml中添加补丁声明,让aws-sdk-rust使用更新的openssl-sys版本(比如0.9.75+,该版本支持OpenSSL 1.1.1及以上):

[patch.crates-io]
openssl-sys = { version = "0.9.75" }

执行cargo update更新依赖后,重新尝试构建。

3. 手动指定OpenSSL路径(适用于手动编译的情况)

如果你已经手动编译了OpenSSL,需要明确告知构建脚本其安装路径:

# 替换为你的OpenSSL实际安装目录
export OPENSSL_DIR=/usr/local/openssl
export OPENSSL_LIB_DIR=/usr/local/openssl/lib
export OPENSSL_INCLUDE_DIR=/usr/local/openssl/include
cargo build

注意手动编译的OpenSSL版本必须与openssl-sys支持的版本匹配。

4. 改用rustls替代系统OpenSSL

aws-sdk-rust支持通过特性开关使用纯Rust实现的rustls,彻底规避系统OpenSSL的依赖问题。修改Cargo.toml中的相关依赖:

aws-config = { version = "0.51", default-features = false, features = ["rustls"] }
aws-sdk-s3 = { version = "0.21", default-features = false, features = ["rustls"] }
# 其他AWS SDK crate同理,关闭默认特性并启用rustls

修改后直接执行cargo build即可,无需依赖系统OpenSSL库。

5. 清理Cargo缓存后重试

缓存异常也可能导致构建失败,清理后重新构建:

cargo clean
rm -rf ~/.cargo/registry/index
cargo build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:25:08