
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/lfs
make headers_check
。しかし、6.7( の後make mrproper
) が見つからないと表示されlibz.so
、 で検索したところ/tools/lib
、見つかりませんでした。
答え1
前回提出した回答が正しいか否か。
ファイルにユーザーがいる状態で、LFS-7.5
を続けることにしました。Linux Mint
lfs
sudoers
第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
。
少なくとも、これは私が使用した方法であり、gcc
2 回目の 1 回目のパスをやり直した直後、上記のコマンドの出力は を指していました$LFS/tools/lib
。
答え2
次のコマンドを正常に実行できましたmake mrproper
。これが本当に上記の問題の解決策であるかどうかはわかりません。とにかく、ここにあります:
私はUbuntu 14.04を使用していて、lfsLFS-7.5の本で提案されているように、lfsユーザーが存在しないことに気付いたのは、ずっと後になってから、chroot
LFSパーティションに入ったときでした。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 ビルド ステップでも発生する可能性があります。これは変数フォーカスの問題だと思います。