ubuntu - lfs gcc 无法编译
问题描述
我正在尝试根据 Linux From Scratch 制作 gcc。但我遇到了一个错误。
错误屏幕截图
可能有用的附加信息:
0. lfs 手册版本 7.7-systemd
1. 我正在运行 ubuntu linux
uname -r : 4.4.0-142-generic
2. 我已经检查了版本和库
bash, version 4.3.11(1)-release
/bin/sh -> /bin/dash
Binutils: (GNU Binutils for Ubuntu) 2.24
bison (GNU Bison) 3.0.2
/usr/bin/yacc -> /usr/bin/bison.yacc
bzip2, Version 1.0.6, 6-Sept-2010.
Coreutils: 8.21
diff (GNU diffutils) 3.3
find (GNU findutils) 4.4.2
GNU Awk 4.0.1
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
(Ubuntu EGLIBC 2.19-0ubuntu6.14) 2.19
grep (GNU grep) 2.16
gzip 1.6
Linux version 4.4.0-142-generic (buildd@lcy01-amd64-006) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) ) #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019
m4 (GNU M4) 1.4.17
GNU Make 3.81
GNU patch 2.7.1
Perl version='5.18.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.27.1
makeinfo (GNU texinfo) 5.2
xz (XZ Utils) 5.1.0alpha
g++ compilation OK
ibgmp.la: not found
libmpfr.la: not found
libmpc.la: not found
这是我正在运行的代码
../gcc-4.9.2/configure \
--target=$LFS_TGT \
--prefix=/tools \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libitm \
--disable-libquadmath \
--disable-libsanitizer \
--disable-libssp \
--disable-libvtv \
--disable-libcilkrts \
--disable-libstdc++-v3 \
--enable-languages=c,c++
更新
这是第 5 章中构建的第一个工具链,我解压了 gcc 源代码并使用了这些新的源代码。
解决方案
首先,我强烈建议使用当前版本的LFS Book(截至撰写本文时为 9.0)。您使用的 7.7 版现在已经快 5 年了。
其次,您的主机系统(Ubuntu)不符合 LFS 要求:
/bin/sh
应该是一个链接/bin/bash
。在您的情况下,它链接到/bin/dash
. 简单的解决方法是手动更改它。作为根:
rm /bin/sh
ln -sv /bin/bash /bin/sh
- 您的主机系统使用 EGLIBC 而不是 GLIBC。EGLIBC 是为嵌入式设备设计的,试图与标准 glibc 兼容,自 2014 年初https://en.wikipedia.org/wiki/Embedded_GLIBC起已停产。不幸的是,我不知道是否可以在 Ubuntu 上将 EGLIBC 更改为 GLIBC(安装 glibc 然后删除 eglibc 可以工作)。
推荐阅读
- node.js - Angular 的热重载
- django - 我的 django 信号在哪里寻找在 createprofile 函数中创建的缺失参数?
- background - sweetalert2 标题字段中无法解释的背景颜色
- flutter - 在riverpod中,如何编写一个异步设置(仅一次)的StateNotifier
- vb.net - 如何在加载时使用条件设置 DataGridView Rows FontStyle?
- authentication - 尝试登录时的身份验证半径错误
- python - 追加是添加总和而不是添加到列表 python
- mysql - .NetCore MariaDb Dapper - 如何执行存储过程?
- android - 为什么我的数据绑定不适用于 HashMap?
- python - 如何从多次运行中将 python dict 存储在 json 文件中?