Los parámetros de Gcc que se usan comúnmente en Linux

  

En primer lugar, gcc y g ++ son compiladores de gnu c y c ++ respectivamente, y generalmente se deben dividir en cuatro pasos al compilar:

1 preprocesamiento Para que cpp genere el archivo .i, use el preprocesador cpp

2 para convertir el archivo preprocesado al lenguaje ensamblador, genere el archivo .s, use el compilador egcs

3 El archivo de ensamblaje se convierte en el archivo de destino, es decir, se genera el código de la máquina. Aquí está el archivo .o generado. Use el ensamblador como

4 para conectar el código de objeto, genere el programa ejecutable y use el conector ld

Los parámetros principales son:

-x nombre de archivo de idioma Es el idioma utilizado para configurar el archivo. En este momento, el nombre del sufijo no es válido. Aunque estamos de acuerdo en que el sufijo del lenguaje c es .c, el nombre del sufijo del lenguaje c ++ es. Cpp, pero en este punto podemos usar el nombre del sufijo a voluntad. Los parámetros comúnmente disponibles son: c, objectivo-c, encabezado-c, c ++, salida-cpp, ensamblador, ensamblador-con-cpp. Por ejemplo, podemos usar el comando cpp -xc hello.xin

-x none nombre de archivo Esto es para cerrar la opción anterior, deje que gcc determine automáticamente el tipo de archivo de acuerdo con el sufijo del nombre del archivo, como gcc -xc hello.xin -x none Hola.c

-c es solo para activar el preprocesamiento, la compilación y el ensamblaje, es decir, solo convierte el programa en un archivo obj, podemos usar gcc -c hello.c para generar el archivo .o obj

-S solo activa el preprocesamiento y la compilación, y puede compilar archivos en código de ensamblaje. Por ejemplo, nuestro gcc -S hello.c generará un código de ensamblaje para .s, que podemos ver usando un editor de texto.

-E solo activa el preprocesamiento, esto no genera archivos, necesitamos redirigirlo a un archivo de salida, como gcc -E hello.c > xin.txt o gcc -E hello.c | Más para ver.

-o especifica el nombre del destino. El archivo predeterminado compilado por gcc es a.out. Podemos usar gcc -o hola hello.c.

-pipe utiliza tuberías en lugar de archivos temporales en la compilación. Cuando utilice herramientas de ensamblaje que no sean GNU, puede tener problemas.

-undef cancela la definición de cualquier macros no estándar

-Idir Cuando usamos #include, gcc primero buscará los archivos de encabezado que hemos creado en el directorio actual. Si no lo encuentra, Irá al archivo de directorio de encabezado predeterminado. Si especifica un directorio con -I, primero buscará en el directorio que especificamos y luego irá al directorio normal para buscar.

-I- es la función para cancelar el parámetro anterior, generalmente se usa después de -Idir.

-C no borra la información del comentario cuando se procesa previamente, generalmente se usa con -E, es conveniente cuando se analiza el programa.

-M genera información relacionada con el archivo, incluido el archivo de destino Dependiendo de todo el código fuente, podemos usar gcc -M hello.c para probar

-MM y -M son los mismos, pero ignora las dependencias causadas por #include < file >

-MD es lo mismo que -M, pero la salida se importa al archivo .d.

-MMD es la misma que -MM, y la salida se importa al archivo .d.

-library se especifica para compilar La biblioteca para usar cuando.

-Ldir especifica la ruta a la biblioteca de búsqueda en tiempo de compilación, donde dir es el nombre de nuestro directorio.

-O0, -O1, -O2, -O3 son los cuatro niveles de opciones de optimización del compilador, donde -O0 significa que no hay optimización, -O1 es el valor predeterminado, y -O3 tiene el nivel de optimización más alto. >

-g es solo un compilador. Al compilar, genera información de depuración.

-gstabs que genera información de depuración en formato stabs, pero no contiene información de depuración gdb.

-ggdb generará La información de depuración de Gdb

-static prohibirá el uso de bibliotecas dinámicas, por lo que las cosas compiladas generalmente son muy grandes.

-share intentará usar bibliotecas dinámicas, por lo que los archivos generados son pequeños, pero deben usarse Biblioteca dinámica

- los aprendices tradicionales permiten que el compilador admita las funciones del lenguaje C tradicional

Copyright © Conocimiento de Windows All Rights Reserved