ubuntu: cargo build error: failed to run custom build command for `openssl-sys v0.9.39`

本文解决了一个常见的构建错误:cargobuilderror:failedtoruncustombuildcommandfor`openssl-sysv0.9.39`。提供了详细的步骤,包括安装最新libssl包,清除buildfailed文件,以及重新编译解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cargo build error: failed to run custom build command for `openssl-sys v0.9.39` 

 

解决方法:

1. 输入命令“sudo apt install libssl-dev” 安装最新的 libssl 包;

sudo apt install libssl-dev

 

 

2.输入命令“sudo rm -rf Cargo.lock target”,清除掉之前的build failed 文件

sudo rm -rf Cargo.lock target/

 

3.命令“sudo cargo build”,重新编译,搞定!

sudo cargo build

 

总结:该问题是ssl库升级导致,更新最新版的ssl库即可解决。

<think>我们正在解决的是`openssl-sys`编译失败的问题,具体错误信息是: error: failed to run custom build command for `openssl-sys v0.9.109` Could not find directory of OpenSSL installation 这个错误表明在编译过程中,系统没有找到OpenSSL的安装目录。OpenSSL是一个广泛使用的加密库,许多Rust项目依赖它。下面我们将分步骤解决这个问题。 ### 步骤1: 安装OpenSSL开发包 首先,确保系统已安装OpenSSL的开发包。不同操作系统的安装命令如下: - **Ubuntu/Debian**: ```bash sudo apt update sudo apt install libssl-dev pkg-config ``` - **Fedora/CentOS/RHEL**: ```bash sudo dnf install openssl-devel # 或 sudo yum install openssl-devel ``` - **Arch Linux/Manjaro**: ```bash sudo pacman -S openssl ``` - **macOS (使用Homebrew)**: ```bash brew update brew install openssl@3 ``` - **Windows**: 在Windows上,建议使用vcpkg安装OpenSSL: ```bash vcpkg install openssl:x64-windows ``` 然后设置环境变量: ```bash set OPENSSL_ROOT_DIR=C:\path\to\vcpkg\installed\x64-windows set OPENSSL_LIB_DIR=%OPENSSL_ROOT_DIR%\lib set OPENSSL_INCLUDE_DIR=%OPENSSL_ROOT_DIR%\include ``` ### 步骤2: 配置pkg-config路径 安装完成后,确保`pkg-config`能找到OpenSSL。在Linux/macOS上,运行: ```bash export PKG_CONFIG_PATH=/usr/local/opt/openssl@3/lib/pkgconfig # macOS Homebrew安装的路径 # 或 export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig # Ubuntu常见路径 ``` 然后验证: ```bash pkg-config --libs openssl ``` 如果输出类似`-lssl -lcrypto`,则配置成功。 ### 步骤3: 设置环境变量(可选) 如果上述步骤后问题依旧,可以手动指定OpenSSL的路径: - **Linux/macOS**: ```bash export OPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 # macOS export OPENSSL_ROOT_DIR=/usr # Linux ``` - **Windows**: ```bash set OPENSSL_ROOT_DIR=C:\OpenSSL-Win64 # 替换为你的OpenSSL安装路径 ``` ### 步骤4: 重新安装cargo-update 完成上述配置后,重新运行安装命令: ```bash cargo install cargo-update ``` ### 步骤5: 针对特定平台的额外说明 - **macOS用户注意**:如果使用Homebrew安装OpenSSL后仍然报错,尝试创建符号链接: ```bash ln -s /usr/local/opt/openssl@3 /usr/local/openssl ``` 然后设置`OPENSSL_ROOT_DIR``/usr/local/openssl`- **Windows用户注意**:如果使用官方二进制安装包,请确保安装的是**Win64**版本,并将安装目录添加到系统环境变量`PATH`中。 ### 总结 以上步骤解决了因OpenSSL开发包缺失或路径配置错误导致的编译问题。如果问题仍然存在,请提供详细的系统信息和错误日志,以便进一步诊断。 §§相关问题§§ 1. 如何在不同操作系统上安装OpenSSL开发包? 2. 如何使用vcpkg管理Windows上的C/C++依赖库? 3. Rust项目中如何处理其他系统级依赖的编译问题?</think>### 解决 `openssl-sys` 编译失败问题 当安装 Rust 工具时出现 `error: failed to run custom build command for openssl-sys v0.9.109` 错误,表明系统缺少 OpenSSL 开发文件或路径配置错误。以下是针对不同操作系统的解决方案: #### 1. **安装 OpenSSL 开发包** 不同操作系统的安装命令: | 操作系统 | 安装命令 | |----------------|--------------------------------------------------------------------------| | **Ubuntu/Debian** | `sudo apt update && sudo apt install libssl-dev pkg-config -y` | | **Fedora/CentOS** | `sudo dnf install openssl-devel``sudo yum install openssl-devel` | | **Arch Linux** | `sudo pacman -S openssl` | | **macOS** | `brew update && brew install openssl@3` | | **Windows** | 从 [OpenSSL 官网](https://slproweb.com/products/Win32OpenSSL.html) 下载安装 Win64 版本 | #### 2. **配置环境变量** 安装后需设置路径变量(重要!): ```bash # Linux/macOS export OPENSSL_DIR=$(brew --prefix openssl@3) # macOS Homebrew 路径 export OPENSSL_DIR=/usr/lib/ssl # Ubuntu 默认路径 # Windows PowerShell $env:OPENSSL_DIR = "C:\Program Files\OpenSSL-Win64" # 替换为实际安装路径 ``` #### 3. **验证 pkg-config 配置** 运行以下命令检查 OpenSSL 路径是否被识别: ```bash pkg-config --libs --cflags openssl ``` 正常输出示例:`-lssl -lcrypto -I/usr/include/openssl` #### 4. **Windows 特殊处理** 若使用 vcpkg: ```powershell vcpkg install openssl:x64-windows cargo install cargo-update --target x86_64-pc-windows-msvc ``` #### 5. **强制重新构建** 清理缓存后重试: ```bash cargo clean cargo install cargo-update -vv # -vv 查看详细日志 ``` #### 6. **替代方案(无 OpenSSL)** 如果问题持续,尝试使用 Rust 的纯 Rust 实现替代方案: ```bash cargo install cargo-update --features vendored-openssl ``` ### 常见错误排查 - **"Could not find directory"**:环境变量 `OPENSSL_DIR` 未正确设置 - **"linker &#39;cc&#39; not found"**:缺少 C 编译器,安装 `build-essential` (Linux) 或 Xcode (macOS) - **版本冲突**:确保安装的是 OpenSSL 1.1.x 或 3.x 版本 > 提示:90% 的 `openssl-sys` 错误通过正确设置 `OPENSSL_DIR` 环境变量解决[^1]。安装后运行 `openssl version` 验证是否生效。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值