
Estoy construyendo lfs-7.5.
Cuando corro make mrproper
en el capitulo6.7, dice:
hacer: gcc: comando no encontrado
y al correr bash /tools/bin/gcc
dice:
bash: /tools/bin/gcc: no existe tal archivo o directorio
Este es el mismo problema queaquí. Incluso la información proporcionada por la persona que hizo la pregunta en los comentarios es la misma que la mía.
Él dice que lo hizo "tercer pase" de gcc
enCapítulo 5. Si este fuera el caso, entonces el autor de LFS nos habría indicado claramente que realizáramos 3 pasadas. Supongo que estoy cometiendo un error sutil en alguna parte, pero parece que no puedo descubrir dónde.
Según el apoyo brindado por los autores de LFS, nos piden que rehagamos todo desde el principio. Estoy de acuerdo con ellos, pero sin saber dónde pudo haber ocurrido el error, estamos obligados a cometer el mismo error nuevamente (como lo hice yo). El resultado proporcionado por la persona que hizo la pregunta en la pregunta de soporte de LFS coincide con el mío. Este es elenlace.
Otra pregunta sobre el mismo tema.aquíno arrojó ninguna respuesta.
Por favor ayuda.
Por cierto, cuando descubrí que gcc
no estaba vinculado a las bibliotecas /tools/lib
de LFS, creé manualmente un enlace sim desde libc.so.6
y /lib
debajo /lib64
de /mnt/lfs
donde monté la partición LFS. Pero cuando estaba ejecutando make headers_check
en6.7(después make mrproper
), se quejó de que no lo encontró libz.so
y cuando busqué /tools/lib
, no pude encontrarlo.
Respuesta1
No sé si la respuesta anterior que envié escorrectoO no.
Decidí continuar haciéndolo LFS-7.5
en Linux Mint
, donde el usuario lfs
estaba presente en el sudoers
archivo. Despues de terminarCapítulo 5, nuevamente recibí un error enCapítulo 6.7 make mrproper
. Entonces, eliminé todas las carpetas $LFS
excepto $LFS/sources
y comencé desde el principio.
Después de terminar la segunda pasada de gcc
, verifiqué si las bibliotecas de gcc
apuntaban a las siguientes $LFS/tools
o no. Pero descubrí que todavía estaban apuntando al /usr
sistema host.
Entonces, reconstruí desde la primera pasada gcc
y luego todo estuvo bien.
Entonces, después del segundo pase de gcc
, haz:
ldd
$LFS/tools/bin/$LFS_TGT-gcc
y si la salida resultante apunta a /usr
, rehaga desde la primera pasada de gcc
.
Al menos, este es el método que utilicé e inmediatamente después de rehacer la primera pasada por gcc
segunda vez, la salida del comando anterior apuntaba a $LFS/tools/lib
.
Respuesta2
Pude ejecutar con éxito make mrproper
los siguientes comandos. Realmente no sé si esta es realmente la solución al problema anterior. De todos modos aquí está:
Estaba usando Ubuntu 14.04 y creélfsusuario como lo sugiere el libro LFS-7.5. Pero el problema fue que no me di cuenta hasta más tarde, mucho más tarde, al chroot
ingresar a la partición LFS, que el usuario lfs no estaba en la partición LFS.sudoersarchivo.
Ubuntu no agregó (¿no agrega?) automáticamente al usuario alsudoersarchivo, probablemente por diseño de la gente de Ubuntu. Esta podría ser la razón por la que no lo volví a intentar en Ubuntu.
Me desanimé y comencé a probar LFS-7.5 enLinux menta 16y automáticamente agregó el usuario a lasudoersarchivo y todo salió bien enCapítulo 6.7mientras construimos e instalamosencabezados de Linux.
Respuesta3
Tuve exactamente el mismo problema. Revisé el enlazador dinámico usado por gcc: readelf -l /tools/bin/gcc | grep interpreter
y no estaba/herramientas/lib64/ld-linux-x86-64.so.2pero/lib64/ld-linux-x86-64.so.2. Entonces, gcc no se pudo ejecutar porque este archivo no existía.
El problema surgió en el paso de construcción de gcc Pass2. No puse la definición de CC, CXX, AR y RANLIB en la misma línea que el comando de configuración.
yo corrí
CC=$LFS_TGT-gcc
CXX=$LFS_TGT-g++
AR=$LFS_TGT-ar
RANLIB=$LFS_TGT-ranlib
../configure --prefix=/tools ...
En lugar de
CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure --prefix=/tools ...
El mismo problema podría aplicarse en el paso de compilación de binutils pass2. Supongo que es un problema de enfoque variable.