执行cargo build时stdint v1.0.0自定义构建命令失败原因排查
编译Rust键盘驱动时缺失
gnu/stubs-32.h的解决办法 问题原因
gnu/stubs-32.h是32位GNU C标准库的头文件,不属于Rust生态体系,属于系统级32位编译依赖。你在64位OpenSuSE 15.6上交叉编译32位ARM目标(armv7-unknown-linux-musleabihf)时,主机默认只安装了64位C库头文件,导致bindgen生成绑定过程中找不到对应32位头文件。
解决方案
1. 安装32位C标准库开发包
在OpenSuSE 15.6上执行以下命令,安装32位glibc开发包:
sudo zypper install glibc-devel-32bit
2. 补充ARM交叉编译工具链开发包
由于你编译的是ARM架构目标,需确保对应交叉编译工具链的开发包已安装:
sudo zypper install cross-armv7hl-linux-gnueabi-glibc-devel
若上述包名不存在,可通过sudo zypper search cross-arm查找对应架构的交叉编译开发包
3. 配置bindgen交叉编译参数(可选)
如果安装依赖后仍报错,可设置环境变量指定交叉编译的系统根路径:
export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/armv7hl-linux-gnueabi" cargo build
内容的提问来源于stack exchange,提问作者Neppomuk
相关产品推荐
相关产品推荐

