
我正在建造 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/lfs
make headers_check
6.7(之後make mrproper
),它抱怨沒有找到libz.so
,當我在 中搜索時/tools/lib
,我找不到它。
答案1
我不知道我之前提交的答案是否是正確的或不。
我決定繼續執行LFS-7.5
in Linux Mint
,其中使用者lfs
存在於sudoers
文件中。完成後第5章,我再次遇到錯誤第6.7章 make mrproper
。所以,我刪除了$LFS
except下的所有資料夾$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 建置步驟中。我認為這是一個可變焦距的問題。