Cómo realizar una compilación cruzada en la plataforma Linux
El entorno de compilación cruzada de Linux consta de las siguientes partes:
1. El compilador gcc del sistema de destino
2. La herramienta binaria binutils del sistema de destino
3. La biblioteca C estándar glibc del sistema de destino
4. El archivo de encabezado del kernel de Linux del sistema de destino
Una vez completada la configuración. , debe copiar el archivo de encabezado del kernel en el directorio de instalación: cp -dR include/asm-arm $PREFIX/arm-linux/include/asm cp -dR include/linux $PREFIX/arm-linux/include/linux p>
4. Compile gcc por primera vez
Primero ejecute el archivo de configuración, use el parámetro --prefix=$PREFIX para especificar la ruta de instalación, use --target=arm-linux parámetro para especificar el tipo de máquina de destino, use --disable-threads, --disable-shared y --enable -languages=c, luego instale. Dado que compilar todo el gcc requiere la biblioteca glibc de la máquina de destino, que aún no existe, primero debe generar un gcc mínimo que compile solo la biblioteca glibc de la máquina de destino.
V. Compilación cruzada glibc
El código generado en este paso es para la CPU de destino, por lo que es un proceso de compilación cruzada. Este proceso utiliza el archivo de encabezado del kernel de Linux. La ruta predeterminada es $PREFIX/arm-linux/sys-linux, por lo que necesita crear un enlace suave llamado sys-linux en $PREFIX/arm-linux para que su archivo de encabezado del kernel sea. ubicado en el directorio de inclusión; alternativamente, puede usar -configure en el siguiente comando que se ejecutará.
Los parámetros de tiempo de ejecución de configure se establecen de la siguiente manera (dado que se trata de una compilación cruzada, la variable del compilador CC se establece en arm-linux-gcc): CC=arm-linux-gcc ./configure -- prefix= $PREFIX/arm-linux --host=arm-linux --enable-add-ons Finalmente, ejecute configure y make install de acuerdo con la configuración anterior, y se completará el proceso de compilación cruzada de glibc. Cabe señalar que la ruta de instalación de glibc está configurada en $PREFIXARCH=arm/arm-linux. Si la configuración es incorrecta, es posible que los archivos de encabezado y las bibliotecas de glibc no se encuentren cuando se compila gcc por segunda vez.
Sexto, compila gcc por segunda vez
Utilice --prefix=$PREFIX --target=arm-linux -enable-languages=c, c para ejecutar configure.
Ejecute make install.
Ahora se ha completado todo el entorno de compilación cruzada.
Algunas notas
En primer lugar, gcc puede tener un error que no puede encontrar stdio.h al compilar por primera vez. La solución es modificar gcc/config/arm/. t-linux, agregue -Dinhibit_libc y -D___libc y -D__gthr_posix_h a la configuración de la variable TARGET_LIBGCC2_CFLAGS.