Hi, ich erstelle Linux from Scratch (www.linuxfromscratch.org) und bin an einem Schritt, der erfordert, dass ich ein Test-C-Programm kompiliere, um zu sehen, ob die Kompilierung funktioniert, und sie scheitert.
Die Befehle, die ich verwende, sind:
echo "main(){}" > dummy.c
$LFS_TGT-gcc -B/tools/lib dummy.c
readelf -l a.out | grep ': /tools'
Wenn ich die zweite Zeile ausführe, gibt der Compiler folgendes zurück.
..pfad../bin/ld: kann crt1.o nicht finden: Datei oder Verzeichnis nicht gefunden
..pfad../bin/ld: kann crti.o nicht finden: Datei oder Verzeichnis nicht gefunden
..pfad../bin/ld: kann -lc nicht finden
..pfad../bin/ld: kann crtn.o nicht finden: Datei oder Verzeichnis nicht gefunden
collect2: ld gab Status 1 zurück
Ich bin mir nicht sicher, was das Problem hier ist und wie man es beheben kann,
Bisher habe ich das gcc-Paket sowie die Specs-Datei neu installiert.
Die Ausgabe von $LFS_TGT-gcc -v -B/tools/lib dummy.c
ist:
Spezifikationen werden aus /mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/specs gelesen
COLLECT_GCC=x86_64-lfs-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/mnt/lfs/tools/bin/../libexec/gcc/x86_64-lfs-linux-gnu/4.6.1/lto-wrapper
Ziel: x86_64-lfs-linux-gnu
Konfiguriert mit: ../gcc-4.6.1/configure --target=x86_64-lfs-linux-gnu --prefix=/tools --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --disable-target-libiberty --disable-target-zlib --enable-languages=c --without-pppl --without-cloog --with-mpfr-include=/mnt/lfs/sources/gcc-4.6.1/mpfr/src --with-mpfr-lib=/mnt/lfs/sources/gcc-build/mpfr/src/.libs
Thread-Modell: single
gcc-Version 4.6.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-B' '/tools/lib' '-mtune=generic' '-march=x86-64'
/mnt/lfs/tools/bin/../libexec/gcc/x86_64-lfs-linux-gnu/4.6.1/cc1 -leise -v -iprefix /mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/ -isystem /tools/include dummy.c leise -dumpbase dummy.c -mtune=generic -march=x86-64 -auxbase dummy -version -o /tmp/ccQMiBtT.s
GNU C (GCC) Version 4.6.1 (x86_64-lfs-linux-gnu)
kompiliert von GNU C Version 4.5.2, GMP Version 5.0.2, MPFR Version 3.1.0, MPC Version 0.9
GGC-Heuristiken: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoriert nicht vorhandenes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/sys-include"
ignoriert nicht vorhandenes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/include"
ignoriert dupliziertes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/../../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/include"
ignoriert dupliziertes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/../../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/include-fixed"
ignoriert nicht vorhandenes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/../../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/sys-include"
ignoriert nicht vorhandenes Verzeichnis "/mnt/lfs/tools/bin/../lib/gcc/../../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/include"
#include "..." Suche beginnt hier:
#include <...> Suche beginnt hier:
/tools/include
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/include
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/include-fixed
Ende der Suchliste.
GNU C (GCC) Version 4.6.1 (x86_64-lfs-linux-gnu)
kompiliert von GNU C Version 4.5.2, GMP Version 5.0.2, MPFR Version 3.1.0, MPC Version 0.9
GGC-Heuristiken: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler-Ausführbarkeitsprüfsumme: ac76a9fc3d8568635f4cf190a73f3235
COLLECT_GCC_OPTIONS='-v' '-B' '/tools/lib' '-mtune=generic' '-march=x86-64'
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/as --64 -o /tmp/ccjUV0Gs.o /tmp/ccQMiBtT.s
COMPILER_PATH=/tools/lib/:/mnt/lfs/tools/bin/../libexec/gcc/x86_64-lfs-linux-gnu/4.6.1/:/mnt/lfs/tools/bin/../libexec/gcc/:/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/
LIBRARY_PATH=/tools/lib/:/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/:/mnt/lfs/tools/bin/../lib/gcc/:/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/lib/
COLLECT_GCC_OPTIONS='-v' '-B' '/tools/lib' '-mtune=generic' '-march=x86-64'
/mnt/lfs/tools/bin/../libexec/gcc/x86_64-lfs-linux-gnu/4.6.1/collect2 --eh-frame-hdr -m elf_x86_64 -dynamic-linker /tools/lib64/ld-linux-x86-64.so.2 crt1.o crti.o /mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/crtbegin.o -L/tools/lib -L/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1 -L/mnt/lfs/tools/bin/../lib/gcc -L/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/lib /tmp/ccjUV0Gs.o -lgcc -lc -lgcc /mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/crtend.o crtn.o
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/ld: kann crt1.o nicht finden: Datei oder Verzeichnis nicht gefunden
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/ld: kann crti.o nicht finden: Datei oder Verzeichnis nicht gefunden
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/ld: kann -lc nicht finden
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.6.1/../../../../x86_64-lfs-linux-gnu/bin/ld: kann crtn.o nicht finden: Datei oder Verzeichnis nicht gefunden
collect2: ld gab Status 1 zurück
Es ist mir klar, dass es sehr lang ist, aber wenn jemand sagt, was relevant ist, werde ich es kürzen. Weil ganz ehrlich, ich weiß nicht, was nützlich ist.