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: そのようなファイルまたはディレクトリはありません

これは同じ問題ですここコメントで質問した人が提供した情報も私のものと同じです。

彼は「3回目のパス"gcc第5章もしそうなら、LFS の作者は 3 回のパスを実行するように明確に指示しているはずです。どこかで微妙な間違いを犯しているのではないかと思いますが、どこが間違っているのかわかりません。

LFS 作者のサポートによると、最初からやり直すよう求められています。私もその意見に賛成ですが、どこでミスが起きたのか分からなければ、同じミスを繰り返すことになります (私がそうだったように)。LFS サポートの質問で質問した人が提供した出力は、私のものと一致しています。リンク

同じトピックに関する別の質問ここ何の答えも得られませんでした。

助けてください。

gccところで、LFSのライブラリにリンクされていないことがわかったので、 LFSパーティションをマウントした場所からその下/tools/libへのシムリンクを手動で作成しました。しかし、libc.so.6/lib/lib64/mnt/lfsmake headers_check。しかし、6.7( の後make mrproper) が見つからないと表示されlibz.so、 で検索したところ/tools/lib、見つかりませんでした。

答え1

前回提出した回答が正しいか否か。

ファイルにユーザーがいる状態で、LFS-7.5を続けることにしました。Linux Mintlfssudoers第5章、またエラーが発生しました第6.7章 make mrproper. そこで、以下のフォルダをすべて削除して$LFS最初$LFS/sourcesからやり直しました。

の 2 回目のパスを終了した後gcc、 のライブラリがgccの下にあるライブラリを指している$LFS/toolsかどうかを確認しました。しかし、それらはまだホスト システムの を指していることがわかりました/usr

そこで、1 回目のパスから再構築したところgcc、すべて正常になりました。

したがって、 の 2 回目のパスの後にgcc、次の操作を実行します。

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

結果の出力が を指している場合は/usr、 の 1 回目のパスからやり直しますgcc

少なくとも、これは私が使用した方法であり、gcc2 回目の 1 回目のパスをやり直した直後、上記のコマンドの出力は を指していました$LFS/tools/lib

答え2

次のコマンドを正常に実行できましたmake mrproper。これが本当に上記の問題の解決策であるかどうかはわかりません。とにかく、ここにあります:

私はUbuntu 14.04を使用していて、lfsLFS-7.5の本で提案されているように、lfsユーザーが存在しないことに気付いたのは、ずっと後になってから、chrootLFSパーティションに入ったときでした。sudo ユーザファイル。

Ubuntuは自動的にユーザーを追加しませんでした(追加しませんか?)sudo ユーザおそらく Ubuntu の人たちの設計によるものです。これが理由かもしれません、私は Ubuntu で再度試しませんでした。

私は落胆し、LFS-7.5を試し始めましたリナックスミント16そして自動的にユーザーをsudo ユーザファイルとすべてがうまくいきました第6.7章構築とインストール中にLinux ヘッダー

答え3

私もまったく同じ問題を抱えていました。gccが使用するダイナミックリンカーを確認しましたreadelf -l /tools/bin/gcc | grep interpreterが、ld-linux-x86-64.so.2 は、Linux の .so ファイルにあります。しかしld-linux-x86-64.so.2 は、Linux のオペレーティングシステムでサポートされています。したがって、このファイルが存在しないため、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 ビルド ステップでも発生する可能性があります。これは変数フォーカスの問題だと思います。

関連情報