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 建置步驟中。我認為這是一個可變焦距的問題。

相關內容