Cómo configurar el compilador TKstudi C
En un sentido estricto, un compilador es simplemente un compilador responsable de compilar el código fuente (es decir, archivos .c/.cxx/.cpp) en archivos objeto (es decir, archivos .o/.obj). La entrada del proceso de compilación es el archivo fuente, incluidos sus propios archivos .c y .h y el archivo .h proporcionado por el sistema, y la salida del proceso de compilación es el archivo objeto. Cabe enfatizar que durante la fase de compilación, solo se procesarán los archivos fuente, por lo que no es necesario involucrar bibliotecas ni archivos objeto adicionales, por lo que siempre que el código no tenga errores de sintaxis, la compilación siempre producirá archivos objeto.
Para un compilador universal, son necesarias las siguientes partes: 1. Compilador, 2. Conector, 3. Archivos de encabezado y archivos de biblioteca proporcionados por el sistema. Ahora que hemos cubierto el compilador, pasaremos al vinculador.
La función del conector es ensamblar el archivo de destino y cambiar la dirección flotante a una dirección determinada. Este es un gran libro que cubre en detalle los enlazadores y cargadores. En resumen, la entrada de la fase de vinculación es el archivo objeto y la salida es el archivo ejecutable o biblioteca de vínculos dinámicos.
Cualquier compilador proporcionará bibliotecas y archivos de encabezado correspondientes. Los compiladores C/C generalmente proporcionan bibliotecas ANSI C/C y archivos de encabezado correspondientes.
De ahora en adelante, debemos establecer el concepto de que el proceso de compilación en un sentido amplio en realidad incluye dos pasos básicos, a saber, compilación y vinculación, y una comprensión profunda de estos dos pasos será de gran ayuda. progreso.
Necesitamos comprender algunas configuraciones predeterminadas en el compilador. En un compilador, el directorio bin se usa para almacenar el compilador, el vinculador y otras herramientas, el directorio de inclusión se usa para almacenar archivos de encabezado y el directorio lib se usa para almacenar archivos de biblioteca. Esta es la organización de directorios de la mayoría de los compiladores.
Echemos un vistazo a lo que nos proporciona Turbo C
En el directorio bin:
CPP.EXE es un preprocesador de C responsable de la precompilación cuando se trata de código fuente. código, no lo considere un compilador de C
TCC.EXE es un compilador de C que puede compilar el código en un archivo objeto y llamar automáticamente a tlink. TCC.EXE es un compilador de C que puede compilar código en un archivo de destino y llama automáticamente a tlink para generar un archivo ejecutable
TASM.exe es una herramienta ensambladora que puede compilar código ensamblador x86 en un archivo de destino Medio
TLink.exe es un vinculador, responsable de vincular archivos de destino, bibliotecas, etc.
TLib.exe es una herramienta de administración de bibliotecas que puede empaquetar múltiples archivos de destino en un solo archivo p>
TLib.exe es una herramienta de administración de bibliotecas que puede empaquetar múltiples archivos de destino en un solo archivo.
Puede empaquetar múltiples archivos de destino en un solo archivo de biblioteca
BGIOBJ.exe puede convertir archivos BGI en archivos .obj
make.exe es una herramienta de creación que cumple con el estándar GNU y se puede utilizar Para administrar la compilación de código
Archivo de configuración de parámetros de compilación predeterminado de TURBOC.CFG tcc
Todas las herramientas anteriores se pueden ver escribiendo los comandos correspondientes. Por ejemplo, escribiendo tcc se puede ver. el uso de tcc El método no se explicará aquí.
Directorio BGI:
EGAVGA.BGI es el controlador bgi de EGAVGA
Directorio FONT: almacena varios archivos de fuentes utilizados por BGI
Directorio INCLUDE: contiene todos los archivos de encabezado de la biblioteca Turbo C. Cuando desee utilizar una función de biblioteca, puede encontrar sus archivos y prototipos en este directorio, que no se describirá en detalle aquí.
Céntrese en el directorio Lib:
El archivo init.obj es el código de inicio de C, que es responsable de configurar la pila, inicializar la memoria y llamar a la función de entrada de C para ejecutando el programa C. Esta parte del código está escrita en ensamblador y su código fuente se puede encontrar en TC (la versión oficial) con el nombre Init.ASM.
Los archivos c0t.obj, c0s.obj, c0m.obj, c0c.obj, c0l.obj y c0h.obj son las implementaciones de la función de entrada de código C. Leerán las variables de entorno y llamarán. la La función principal pasa los parámetros de la línea de comando a la función principal y luego transfiere el control a la función principal, que comúnmente se conoce como la función principal de C. Dado que Turbo C tiene diferentes modos de memoria, los seis archivos anteriores corresponden a los seis modos de memoria diferentes en TC.
cc.lib, ch.lib, cl.lib, cm.lib, cs.lib son archivos de biblioteca de la biblioteca estándar ANSI C proporcionada por TC, que se utilizan para diferentes modos de memoria:
modo compacto cc
modo ch enorme
modo cl grande
modo cm mediano
modo cs pequeño.