编译glibc 2.28报错:No rule to make target 'stamp.os'
解决glibc 2.28编译报错的方法
1. 修复build.sh脚本的语法错误
你的脚本最后一行存在语法错误,末尾多了一个多余的a:
echo "export LD_LIBRARY_PATH=$DIST_DIR/lib:\$LD_LIBRARY_PATH"a
修正为:
echo "export LD_LIBRARY_PATH=$DIST_DIR/lib:\$LD_LIBRARY_PATH"
2. 调整并行编译参数
make -j$(nproc)会用满所有CPU核心,glibc部分版本在高并行编译时容易出现依赖生成不及时的问题,导致找不到目标文件。先尝试单线程编译排查:
make
如果单线程编译成功,可尝试降低并行数(比如make -j4,根据CPU核心数调整,不要用满)。
3. 检查configure的依赖与输出
重新运行configure,仔细查看输出内容,确认是否有依赖缺失警告:
- 确保安装了
gawk、binutils等基础编译工具 - 确认gcc版本不低于5.1(glibc 2.28的最低要求)
4. 完全清理后重新构建
残留的旧文件可能干扰编译,执行以下操作后重新运行脚本:
rm -rf "$BUILD_DIR" "$DIST_DIR"
5. 补充configure参数(可选)
添加主机类型参数,避免架构识别问题:
../configure --prefix="$DIST_DIR" --host=$(gcc -dumpmachine)
若不需要多架构支持,可额外添加--enable-multi-arch=no参数。
内容的提问来源于stack exchange,提问作者chikadance
相关产品推荐
相关产品推荐

