6.7 Linux 标头 `make mrproper` 在 lfs 7.5 中失败

6.7 Linux 标头 `make mrproper` 在 lfs 7.5 中失败

我正在构建 lfs-7.5。

当我跑进make mrproper章节时6.7, 它说:

make: gcc: 未找到命令

在运行时bash /tools/bin/gcc,它说:

bash: /tools/bin/gcc: 没有这样的文件或目录

这与以下问题相同这里。甚至评论中提出问题的人提供的信息也与我的相同。

他说他做到了“第三遍” 的gcc第5章。如果是这种情况,那么 LFS 的作者就会明确指示我们执行 3 次传递。我猜我在某个地方犯了一个微妙的错误,但我似乎无法找出哪里。

根据LFS作者提供的支持,他们要求我们从头开始重做整个事情。我同意他们的观点,但如果不知道错误可能发生在哪里,我们必然会再次犯同样的错误(就像我所做的那样)。在 LFS 支持问题中提出问题的人提供的输出与我的一致。这是关联

关于同一主题的另一个问题这里没有给出任何答案。

请帮忙。

顺便说一句,当我发现它gcc没有链接到 LFS 中的库时,我手动在安装 LFS 分区的位置及其下/tools/lib创建了一个 simlink 。但是当我执行时libc.so.6/lib/lib64/mnt/lfsmake headers_check6.7(之后make mrproper),它抱怨没有找到libz.so,当我在 中搜索时/tools/lib,我找不到它。

答案1

不知道我之前提交的答案是否是正确的或不。

我决定继续执行LFS-7.5in Linux Mint,其中用户lfs存在于sudoers文件中。完成后第5章,我再次遇到错误第6.7章 make mrproper。所以,我删除了$LFSexcept下的所有文件夹$LFS/sources并从头开始。

完成第二遍后gcc,我检查了 的库是否gcc指向下面的库$LFS/tools。但我发现它们仍然指向/usr主机系统。

所以,我从第一遍开始重新构建gcc,然后一切都很好。

因此,在第二遍之后gcc,执行以下操作:

LDD$LFS/tools/bin/$LFS_TGT-gcc

如果结果输出指向/usr,则从 的第一遍重做gcc

至少,这是我使用的方法,并且在gcc第二次重做第一遍之后,上述命令的输出立即指向$LFS/tools/lib.

答案2

我能够成功执行make mrproper以下命令。我真的不知道这是否真的是上述问题的解决方案。无论如何,这里是:

我使用的是 Ubuntu 14.04,我创建了自由度用户按照 LFS-7.5 书的建议。但问题是,直到后来,很久以后,当chroot进入 LFS 分区时,我才意识到 lfs 用户并不在苏多尔斯文件。

Ubuntu 没有(没有?)自动将用户添加到苏多尔斯文件,可能是 Ubuntu 人设计的。可能是这个原因,我没有在Ubuntu上再次尝试。

我心灰意冷,开始尝试 LFS-7.5Linux 薄荷 16它会自动将用户添加到苏多尔斯文件,一切顺利第6.7章在建造和安装时Linux 头文件

答案3

我有完全相同的问题。我检查了 gcc 使用的动态链接器:readelf -l /tools/bin/gcc | grep interpreter但它不是/tools/lib64/ld-linux-x86-64.so.2/lib64/ld-linux-x86-64.so.2。因此,gcc 无法运行,因为该文件不存在。
问题来自 gcc Pass2 构建步骤。我没有将 CC、CXX、AR 和 RANLIB 的定义放在与 configure 命令相同的行上。

我跑了

CC=$LFS_TGT-gcc
CXX=$LFS_TGT-g++
AR=$LFS_TGT-ar
RANLIB=$LFS_TGT-ranlib
../configure --prefix=/tools ...

代替

CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure --prefix=/tools ...

同样的问题也可能出现在 binutils pass2 构建步骤中。我认为这是一个可变焦距的问题。

相关内容