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

编译Rust crate expat-sys v2.1.6时CMake弃用警告致构建失败

解决expat-sys v2.1.6构建失败问题

快速解决方案(推荐)

安装Fedora系统自带的expat开发库,让expat-sys直接使用系统库而非自行编译:

sudo dnf install expat-devel

安装完成后重新执行cargo build即可。

原理说明

expat-sys v2.1.6是一个较旧的crate,其内置的CMakeLists.txt使用了低于2.8.12的最低版本要求,而你当前使用的CMake 3.25.1已经开始严格限制此类过时配置,导致自定义构建流程报错退出。安装系统级的expat开发库后,cargo会自动检测并优先链接系统库,跳过crate自带的CMake构建步骤,从而规避版本兼容问题。

备选方案(源码编译修复)

如果必须使用expat-sys的源码编译版本,可以通过cargo patch工具修改其CMake配置:

  1. 安装cargo-patch:
cargo install cargo-patch
  1. 在项目根目录创建patch/expat-sys-fix-cmake-version.patch文件,内容如下:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index abc123..def456 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # See LICENSE for details.
 #
 
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 2.8.12)
 
 project(expat C)
  1. 在Cargo.toml中添加patch配置:
[patch.crates-io]
expat-sys = { path = "./patches/expat-sys" }
  1. 执行cargo patch apply后重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:10:20