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

CentOS 6.20编译Rust程序时clang-sys v1.6.1构建失败求助

问题

在内核版本6.20的CentOS系统中构建Rust程序atropos,执行命令:

cargo build --manifest-path=atropos/Cargo.toml --release

时触发clang-sys v1.6.1自定义构建失败,报错核心为could not find any static libraries,完整错误日志及RUST_BACKTRACE=1回溯信息如下:

错误日志

cargo build --manifest-path=atropos/Cargo.toml --release
   Compiling proc-macro2 v1.0.56
   Compiling unicode-ident v1.0.8
   Compiling quote v1.0.26
   Compiling libc v0.2.141
   Compiling autocfg v1.1.0
   Compiling version_check v0.9.4
   Compiling syn v1.0.109
   Compiling serde_derive v1.0.159
   Compiling cc v1.0.79
   Compiling bitflags v1.3.2
   Compiling hashbrown v0.12.3
   Compiling serde v1.0.159
   Compiling pkg-config v0.3.26
   Compiling memchr v2.5.0
   Compiling toml_datetime v0.6.1
   Compiling thiserror v1.0.40
   Compiling winnow v0.4.1
   Compiling once_cell v1.17.1
   Compiling io-lifetimes v1.0.10
   Compiling cfg-if v1.0.0
   Compiling rustix v0.37.7
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling indexmap v1.9.3
   Compiling glob v0.3.1
   Compiling heck v0.4.1
   Compiling anyhow v1.0.70
   Compiling memoffset v0.6.5
   Compiling camino v1.1.4
   Compiling linux-raw-sys v0.3.1
   Compiling serde_json v1.0.95
   Compiling clang-sys v1.6.1
   Compiling semver v1.0.17
   Compiling aho-corasick v0.7.20
   Compiling syn v2.0.13
   Compiling regex-syntax v0.6.29
   Compiling itoa v1.0.6
   Compiling log v0.4.17
   Compiling libbpf-sys v1.1.1+v1.1.0
   Compiling minimal-lexical v0.2.1
   Compiling os_str_bytes v6.5.0
   Compiling ryu v1.0.13
   Compiling nom v7.1.3
   Compiling toml_edit v0.19.8
   Compiling clap_lex v0.2.4
error: failed to run custom build command for `clang-sys v1.6.1`

Caused by:
  process didn't exit successfully: `/root/sched_ext/tools/sched_ext/atropos/target/release/build/clang-sys-eaa3a1b9c03ac901/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at 'could not find any static libraries', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/clang-sys-1.6.1/build/static.rs:92:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
make: *** [Makefile:201: atropos] Error 101

回溯信息

error: failed to run custom build command for `clang-sys v1.6.1`

Caused by:
  process didn't exit successfully: `/root/sched_ext/tools/sched_ext/atropos/target/release/build/clang-sys-eaa3a1b9c03ac901/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at 'could not find any static libraries', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/clang-sys-1.6.1/build/static.rs:92:9
  stack backtrace:
     0: std::panicking::begin_panic
     1: build_script_build::static::find
     2: build_script_build::static::link
     3: build_script_build::main
     4: core::ops::function::FnOnce::call_once

错误原因

  1. 缺少Clang静态库文件:clang-sys v1.6.1默认尝试链接Clang的静态库,但CentOS默认安装的Clang通常仅包含动态库,未提供libclang.a这类静态版本。
  2. 构建配置强制静态链接:atropos的依赖链中,上游库显式启用了clang-sys的静态链接特性,导致构建脚本必须找到静态库才能继续。
  3. 环境变量未指向静态库路径:即使系统存在Clang静态库,若未通过LIBCLANG_PATH等变量告知clang-sys,也会触发找不到库的错误。

解决方法

方法一:安装Clang静态开发包

CentOS下通过yum安装包含静态库的Clang开发组件:

yum install -y epel-release
yum install -y clang-devel llvm-devel

注:若提示找不到包,需先启用EPEL源(即第一条命令)。

方法二:强制clang-sys使用动态链接

通过环境变量让clang-sys放弃静态链接,改用动态库:

export CLANG_SYS_STATIC=0
cargo build --manifest-path=atropos/Cargo.toml --release

若需要永久生效,可将export CLANG_SYS_STATIC=0添加到~/.bashrc或/etc/profile中。

方法三:手动指定Clang静态库路径

如果已手动编译安装带静态库的Clang,通过环境变量指定路径:

export LIBCLANG_PATH=/path/to/your/clang/static/libs
cargo build --manifest-path=atropos/Cargo.toml --release

替换/path/to/your/clang/static/libs为实际的静态库目录(通常是llvm/lib或clang/lib)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:07:07