
En una pregunta anterior pregunté sobre la creación de un chroot que simule el entorno de mi dispositivo integrado. Se sugirió que primero compilara desde el código fuente GCC y binutils dentro de mi chroot. Para intentar esto, copié la versión del binario libc y gcc en mi máquina host al chroot. Luego escribí un programa simple de hola mundo en un archivo test.c e intenté compilarlo en mi chroot de la siguiente manera
phil@phil-desktop:/usr$ sudo chroot /usr/embedded_chroot1/
bash-4.2# gcc test.c
gcc: error trying to exec 'cc1': execvp: No such file or directory
No estoy muy seguro de qué está pasando aquí con este error. He copiado el binario gcc y libc en mi chroot, ¿por qué no puedo compilar? ¿Debo copiar también todos los archivos fuente y de encabezado del sistema en mi chroot? Creo que tengo un malentendido conceptual con todo el proceso de uso de un chroot.
Respuesta1
La compilación de gcc tiene la capacidad de iniciarse por sí sola sin ningún compilador existente en el sistema. Deberias ser capaz dedescargary descomprime gcc, y constrúyelo dentro de tu chroot sin tener que copiar nada desde afuera. Ha pasado un tiempo desde que hice esto, pero recuerdo que fue razonablemente indoloro.
Mira elinstrucciones de construcción para gcc, que detallan este proceso. Querrá crear un compilador nativo y todos los pasos deben realizarse dentro de su chroot, de modo que gcc se cree para que coincida con ese sistema.