Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - Investigación sobre la cadena de herramientas de compilación cruzada integradas en Linux

Investigación sobre la cadena de herramientas de compilación cruzada integradas en Linux

Introducción

La cadena de herramientas entre compiladores es un entorno de desarrollo integral que consta de un compilador, un enlazador y un intérprete. La cadena de herramientas del compilador cruzado consta principalmente de binutils, gcc y Glibc. ¿A veces para restauración? libc? Teniendo en cuenta el tamaño de la biblioteca, ¿se puede utilizar algo más? ¿do? ¿Biblioteca en su lugar? ¿Te gusta Glibc? uClibc, dietlibc? Entonces qué. Newlib. La cadena de herramientas de compilación cruzada incluye principalmente el compilador del sistema de destino. Gcc, binutils, las herramientas binarias del sistema de destino, glibc, la biblioteca C estándar del sistema de destino y ? Archivos de encabezado del kernel de Linux. El primer paso es identificar la plataforma de destino. Cada plataforma de destino tiene un formato claro y esta información se utiliza para identificar las versiones correctas de las diferentes herramientas que se utilizarán durante el proceso de construcción. Por lo tanto, cuando se ejecuta GCC en una máquina de destino específica, GCC buscará la ruta de la aplicación que contiene la especificación de destino en la ruta del directorio. El formato de especificación de destino de GNU es CPU-Platform-OS. Por ejemplo, cree una cadena de herramientas cruzada basada en la plataforma ARM y la plataforma de destino se denomina arm-linux-gnu.

El método para crear una cadena de herramientas de compilación cruzada es compilar e instalar gradualmente las bibliotecas y los códigos fuente necesarios para la cadena de herramientas de compilación cruzada y, finalmente, generar una cadena de herramientas de compilación cruzada.

La cadena de herramientas de compilación cruzada se genera mediante una compilación única utilizando la herramienta de secuencia de comandos Crosstool.

Descargue la cadena de herramientas de compilación cruzada (ftp.arm.kernel.org.uk) directamente desde Internet.

El método 1 es relativamente difícil y adecuado para lectores que desean aprender en profundidad y crear cadenas entre herramientas. Si solo desea utilizar la cadena de herramientas cruzadas, se recomienda utilizar el método 2 o el método 3 para construir la cadena de herramientas cruzadas. No hace falta decir que las ventajas del método 3 son simples y fáciles de implementar, pero al mismo tiempo, este método también tiene algunas desventajas, es decir, es demasiado limitado porque fue construido por otros y es fijo e inflexible. por lo tanto, la versión de la biblioteca y el compilador utilizados al compilarlo pueden no ser adecuados para el programa que desea compilar y pueden ocurrir muchos errores inexplicables durante el uso. Le recomiendo que utilice este enfoque con precaución.

Método 1: Construya la cadena de herramientas de compilación cruzada paso a paso.

Descargar el paquete de código fuente requerido

Crear un directorio de trabajo

Establecer variables de entorno

Compilar e instalar Binutils

¿Obtener archivos de encabezado del kernel?

Compila el compilador auxiliar de gcc

Compila y genera la biblioteca glibc

Compila y genera un gcc completo.

Debido a limitaciones de espacio en las preguntas y respuestas, no puedo dar más detalles sobre los pasos específicos. Los estudiantes interesados ​​deben leer Open Source Linux desde el principio en linuxfromstarget.org.

Método 2: utilice Crosstool para crear una cadena de herramientas cruzadas (recomendado) Crosstool es un conjunto de herramientas de script que pueden crear y probar diferentes versiones de gcc y glibc para aquellas arquitecturas que admiten glibc. También es un proyecto de código abierto y la dirección de descarga es kegel punto com/crosstool. Usar Crosstool para construir una cadena de herramientas de compilación cruzada es mucho más simple y conveniente que la compilación paso a paso mencionada anteriormente. Este enfoque se recomienda para usted que sólo necesita crear una cadena de herramientas de compilación cruzada para su trabajo.

¿Qué makeinfo ejecutar? Si no se puede encontrar el comando, descomprima texinfo-4.11 tar bz2, ingrese al directorio Texinfo-4.11 y ejecútelo. /configurar y fabricado y vendido. & ampMake install completa la instalación de la herramienta makeinfo.

Preparar archivos: ¿Descargar los archivos de recursos necesarios? Linux-2.4.20.tar.gz, binutils-2.19.tar.bz2, gcc-3.3.6.tar.gz, Glibc-2.3.2.tar.gz, glibc-linuxthreads-2.3.2 tar.gz. Guangfa Bank-6.5.tar.bz2? . Luego, coloque estos archivos del kit de herramientas en el directorio $HOME/downloads recién creado y, finalmente, extraiga crosstool-0.43.tar.gz al directorio $HOME/ y desaparecerá.

El orden es el siguiente:

#?cd? $HOME/

#?Tar? –xvzf? Crosstool-0.43.tar.gz compilar archivo de script

Luego, necesita crear su propio script de compilación, llamado arm.sh. Para simplificar la compilación de arm.sh, busque el archivo de script más cercano. para demo-arm .sh como plantilla y luego copie el contenido del script en arm.sh para modificar el script arm.sh.

Las operaciones específicas son las siguientes:

# cd cross tool-0.43

# cp demo-arm.sh arm.sh

# vi arm.sh

El script arm.sh modificado es el siguiente:

#!/bin/sh

¿Configuración? -Predecesor

TARBALLS_DIR=$HOME/descargas? #?Defina la ubicación de almacenamiento del código fuente de la cadena de herramientas.

RESULT_TOP=$HOME/arm-bin? #?Definir el directorio de instalación de la cadena de herramientas

¿Exportar? ¿TARBALLS_DIR? Result_Top

GCC_LANGUAGES="c,c++"#? ¿La definición apoya c,? lenguaje de programación c++/c plus plus

¿exportar? GCC _Language

#?Cree el directorio /opt/crosstool.

mkdir? -¿pag? $RESULT_TOP

#?Compile la cadena de herramientas. Esto tardará varias horas en completarse.

¿evaluar? ¿gato? brazo.dat? gcc-3.3.6-glibc-2.3.2.dat'? ¿Shh? todo.sh? - nota

¿Eco? Hecho. Hay dos archivos que deben tenerse en cuenta en el archivo de script arm.sh, arm-xscale.dat y gcc-3.3.6-glibc-2.3.2.dat, que son archivos de configuración de compilación de Crosstool. ¿en? El contenido del archivo arm.dat es el siguiente, que se utiliza principalmente para definir el archivo de configuración, el nombre de la cadena de herramientas de compilación y compilación y las opciones de compilación.

KERNELCONFIG='pwd'/arm.config? #?Configuración del kernel

TARGET=arm-linux? #?Nombre de la cadena de herramientas compilada

TARGET_CFLAGS="-O"#? Opciones de compilación

El contenido del archivo gcc-3.3.6-glibc-2.3.2.dat es el siguiente. Este archivo define principalmente las bibliotecas requeridas durante el proceso de compilación y las versiones que definen. Si se descubre que algunas bibliotecas no existen durante el proceso de compilación, Crosstool las descargará automáticamente del sitio web correspondiente. Esta herramienta es inteligente y muy útil.

BINUTILS_DIR = BINUTILS-2.19

GCC_DIR=gcc-3.3.6

GLIBC_DIRECTORY=glibc-2.3.2

LINUX_DIR=linux -2.6.10-8 (completar según la situación real)

GDB_directory=script de ejecución gdb-6.5

Después de preparar el archivo de script Crosstool y el archivo de configuración, comience a ejecutar el brazo Script .sh para compilar la herramienta de compilación cruzada. El comando de ejecución específico es el siguiente:

#?cd? Herramienta cruzada-0.43

#?. Después de varias horas de larga compilación de /arm.sh, se generará una nueva herramienta de compilación cruzada en el directorio /opt/crosstool, que incluye el siguiente contenido:

arm-linux-addr2line? arm-linux-g++arm-linux-ld? arm-Linux-size

arm-linux-ararm-linux-gcc? arm-linux-nm? arm-Linux-string

arm-Linux-asarm-Linux-gcc-3 3 . arm-linux-objcopia? arm-linux-strip

arm-linux-c++? arm-linux-gccbug? arm-linux-objdump? ¿Se corrigió la ruta de incrustación

arm-linux-c++filt? arm-linux-gcov? arm-linux-ranlib

arm-linux-cpp? arm-Linux-gpro farm-Linux-readelf agregue variables de entorno y luego agregue la ruta de la cadena de herramientas del compilador generada a la ruta de la variable de entorno agregando las siguientes líneas al final del archivo /etc/bashrc del sistema y agregue las variables de entorno al archivo bashrc .

Ruta de exportación=/home/Jia Bing/gcc-3 3 6-glibc-2 3 2/arm-Linux-bin/bin:$ RUTA

. Hasta ahora, la cadena de herramientas de compilación cruzada en arm-linux se ha completado y arm-linux-gcc ahora se puede usar para generar programas en la caja de prueba.

上篇: Interpretación de los sueños El cristal de la habitación está roto_Sueño con el cristal de la habitación roto 下篇: El gato de los sueños me mató_El gato de los sueños me mató.
Artículos populares