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

Rust CLI工具在Linux 5.19内核机器Cargo构建失败求助

解决方案

核心原因

ERR_get_error_all 是OpenSSL 3.0及以上版本才引入的API,你当前安装的libssl-dev 1.1.1f并不包含这个函数。你的openssl-0.10.45 crate本应适配OpenSSL 1.1.1,但构建过程中错误地尝试绑定了OpenSSL 3.0的API,导致链接失败。

具体解决步骤

1. 强制指定OpenSSL版本特性

在Cargo.toml中给openssl依赖明确添加v110特性(对应OpenSSL 1.1.0+/1.1.1系列),确保绑定逻辑适配系统已安装的版本:

[dependencies]
openssl = { version = "0.10.45", features = ["v110"] }

2. 清理构建缓存与依赖

清除旧的构建缓存和依赖锁文件,避免残留的错误配置干扰:

cargo clean
rm -f Cargo.lock
cargo build

3. 检查系统OpenSSL环境

确认系统中没有冲突的OpenSSL版本:

  • 查看当前系统默认OpenSSL版本:
    openssl version
    
  • 验证pkg-config指向的库版本:
    pkg-config --modversion openssl
    
    如果输出不是1.1.1f,调整PKG_CONFIG_PATH环境变量指向正确的库路径,例如:
    export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
    

4. 备选方案:改用纯Rust TLS库

如果上述方法仍无法解决,可以将依赖从openssl切换到rustls(纯Rust实现的TLS库,无需依赖系统OpenSSL),彻底规避版本兼容问题。例如替换相关依赖为:

[dependencies]
rustls = "0.21"
rustls-pemfile = "1.0"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:01:01