Introducción
- Preprocesamiento [procesador] =>
.i
archivo- Compilar [herramienta] =>
.s
archivo- Ensamblador =>
.o
archivo- Enlace [tool ld] => programa ejecutable
Parámetro detallado
-x language filename
: Establezca el idioma utilizado en el archivo, invalide el sufijo y será válido para el siguiente múltiplo. Según la convención, el nombre del sufijo del lenguaje C es .cy el nombre del sufijo de C ++ es .C o .cpp. Úselo paranone
desactivar la opción anterior.
Idioma especificable:
C C objetivo encabezado c c ++ salida cpp ensamblador ensamblador-con-cpp ninguno Ejemplo :
gcc -x c hello.pig
-c
: Solo preprocesar , compilar , ensamblar y generar archivos .o
Ejemplo :
gcc -c hello.c
-S
: Solo preprocesar y compilar , generar archivo .s.
ejemplo:
gcc -S hello.c
-E
: Solo se realiza el preprocesamiento , los archivos no se generan automáticamente y los resultados se pueden redirigir.
ejemplo:
gcc -E hello.c > pianoapan.txt gcc -E hello.c | more
-o
: Realiza preprocesamiento , compilación , ensamblaje y vinculación .
ejemplo:
gcc -o hello.exe hello.c (哦,windows用习惯了) gcc -o hello.asm -S hello.c
-pipe
: Use pipelines para reemplazar archivos temporales durante la compilación. Cuando use herramientas de ensamblaje que no sean GNU, puede haber algunos problemas
gcc -pipe -o hello.exe hello.c
-
-ansi
: Desactive las funciones de GNU C que no sean compatibles con ANSI C y active las funciones patentadas de ANSI C (incluida la prohibición de algunas palabras clave de tipo asm en línea y el preprocesamiento de macros como UNIX y vax) -
-fno-asm
: Esta opción implementaansi
una parte de la función de la opción, y prohíbe el usoasm
,inline
ytypeof
como palabras clave. -
-fno-strict-prototype
: Solo funciona para g ++. Al usar esta opción, g ++ considerará que las funciones sin parámetros no tienen una descripción explícita del número y tipo de parámetros, en lugar de no tener parámetros. Independientemente de si gcc usa este parámetro o no, pensará que la ciudad no tiene un tipo explícito para funciones sin parámetros. -
-fthis-is-varialble
: Está en línea con el C ++ tradicional y se puede utilizarthis
como variable general. -
-fcond-mismatch
: Permitir que el tipo del segundo y tercer parámetro de la expresión condicional no coincida, el valor de la expresión serávoid
tipo -
-funsigned-char
,,-fno-signed-char
,-fsigned-char
:-fno-unsigned-char
Estos cuatro parámetros eschar
el tipo de ajuste, para decidirchar
el tipo proporcionadounsigned char
(los dos primeros parámetros) osigned char
(dos parámetros) -
-include file
: Contiene un código determinado, en términos simples, es usar un archivo determinado, cuando se necesita otro archivo, puede usarlo para configurar, la función es equivalente a usar en el código#include<filename>
ejemplo:
gcc hello.c -include /root/pianopan.h
-imacros file
: Expande la macro del archivo de archivo al archivo de entrada de gcc / g ++, la definición de macro en sí no aparece en el archivo de entrada-Dmacro
: Equivalente a #define macro-Dmacro=defn
: Equivalente a #define macro = defn-Umacro
: Equivalente a la macro #undef-undef
: Cancela la definición de cualquier macro no estándar-Idir
Estás en un
#include"file"
tiempo, gcc / g ++ primero buscará archivos de encabezado en el directorio actual para encontrar tu fórmula, si no lo encuentra, regresó al directorio predeterminado de archivos de encabezado, si es el-I
directorio desarrollado, primero lo desarrollarás en Buscar en el directorio, y luego buscar en el orden habitual.
Para#include<file>
, gcc / g ++ buscará-I
en el directorio especificado, si no se puede encontrar, entonces buscará en el directorio de archivos de encabezado predeterminado del sistema
-I-
: Sirve para cancelar la función del parámetro anterior, por lo que generalmente se usa-Idir
después-idirafter dir
: Si-I
la búsqueda falla en el directorio, vaya a este directorio para buscar.-iprefix prefix
,-iwithprefix dir
: Generalmente se usan juntos, cuando-I
la búsqueda del directorio falla, seprefix+dir
buscará a continuación-nostdinc
Hacer que el compilador ya no busque archivos de encabezado en el directorio de archivos de encabezado predeterminado del sistema. Generalmente se usa junto con -I para definir claramente la ubicación del archivo de encabezado.-nostdin C++
: Está estipulado no buscar en la ruta estándar especificada por g ++, pero aún buscar en otras rutas. Esta opción se usa en la creación de la biblioteca libg ++-C
: En el preprocesamiento no se borra la información del comentario, generalmente se usa con -E. A veces es muy conveniente usar esto para analizar el programa.-M
: Genera información relacionada con el archivo. Contiene todo el código fuente del que depende el archivo de destino. Puedes usar gcc -M hello.c para probarlo, es muy simple.-MM
: Igual que el anterior, pero ignorará las dependencias causadas por #include.-MD
: Igual que -M, pero la salida se importará al archivo .d-MMD
: Igual que -MM, pero la salida se importará al archivo .d-Wa,option
: Esta opción se pasa como opción al ensamblador; si hay una coma en la opción, la opción se divide en varias opciones y luego se pasa al ensamblador.-Wl.option
: Esta opción se pasa al vinculador; si hay una coma en la opción, la opción se divide en varias opciones y luego se pasa al vinculador.-llibrary
: Formula la biblioteca que se utilizará al compilar
ejemplo:
gcc -lcurses hello.c # 使用ncurses库编译程序
-Ldir
: Especifique la ruta de la biblioteca de búsqueda al compilar. Por ejemplo, puede usarlo para hacer un catálogo para su propia biblioteca; de lo contrario, el compilador solo lo encontrará en el catálogo de la biblioteca estándar. Estedir
es el nombre del directorio.-O0
,,-O1
,-O2
:-O3
4 opciones de optimización del compilador, el nivel -O0 indica que no hay optimización, -O1 valor predeterminado, -O3 más alto nivel de optimización-g
: Es solo un compilador, que genera información de depuración al compilar.-gstabs
: Esta opción reclama información de depuración en formato de apuñaladas, pero no incluye información de depuración de gdb.-gstabs+
: Esta opción declara la información de depuración en formato stabs y contiene información de depuración adicional que solo es utilizada por gdb.-ggdb
: Esta opción generará tanta información de depuración como sea posible para gdb.- -static: Esta opción prohibirá el uso de bibliotecas dinámicas, por lo tanto, las cosas compiladas son generalmente muy grandes y pueden ejecutarse sin ninguna biblioteca de vínculos dinámicos.
-shared
: Esta opción intentará utilizar la biblioteca dinámica, por lo que el archivo generado es relativamente pequeño, pero el sistema necesita la biblioteca dinámica.-traditional
: Intentando que el compilador admita las características tradicionales del lenguaje C