无sudo权限下编译sox时缺失glibc头文件stubs-64.h求助
解决sox编译时找不到gnu/stubs-64.h的问题
核心原因
自行编译的glibc头文件结构不完整,或者configure时的路径参数未正确关联到glibc的64位头文件目录。stubs-64.h通常位于glibc安装目录的include/gnu子目录下,可能因glibc编译配置缺失、安装步骤不完整,导致文件不存在或configure无法识别路径。
可行解决方案
1. 重新编译glibc并指定架构参数
若之前编译glibc时未明确64位架构参数,需重新编译确保生成完整的64位头文件:
cd /path/to/glibc-source mkdir build && cd build ../configure --prefix=/path/to/your/glibc-install --host=x86_64-linux-gnu --enable-kernel=3.2.0 # 内核版本根据集群实际情况调整 make -j$(nproc) make install
2. 显式指定完整的头文件路径
配置sox时,除设置CFLAGS和LDFLAGS,需添加CPPFLAGS指定glibc的64位头文件子目录(通常在include/x86_64-linux-gnu下):
export CFLAGS="-I/path/to/your/glibc-install/include -I/path/to/your/glibc-install/include/x86_64-linux-gnu" export LDFLAGS="-L/path/to/your/glibc-install/lib -Wl,-rpath=/path/to/your/glibc-install/lib" export CPPFLAGS="-I/path/to/your/glibc-install/include -I/path/to/your/glibc-install/include/x86_64-linux-gnu" ./configure --prefix=/path/to/your/sox-install
替换所有/path/to/your/为实际路径。
3. 补全glibc头文件
先检查glibc安装目录下是否存在stubs-64.h:
find /path/to/your/glibc-install -name "stubs-64.h"
若找不到,进入glibc编译的build目录,重新执行头文件安装:
cd /path/to/glibc-build make headers_install INSTALL_HDR_PATH=/path/to/your/glibc-install
4. 优先使用集群提供的glibc模块
自行编译glibc易引发兼容性问题,尝试加载集群已有的glibc模块后直接编译sox:
module avail glibc module load glibc/<具体版本号> # 直接配置编译sox ./configure --prefix=/path/to/your/sox-install make -j$(nproc) make install
内容的提问来源于stack exchange,提问作者MatBar99
相关产品推荐
相关产品推荐

