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
Ubuntu portátil a una red LAN, conecte el cable de internet, luz indicadora de cable de red, pero in
Por una variedad de organizaciones y empresas, los datos son los más importantes para ellos
Linux Existen tres formas principales: una es la instalación de origen, se necesita el usuario para
Hay 7 niveles de inicio en Linux: # 0 - detener (NO configure initdefault a esto) # 1 - Modo
Calculadora simple y fácil de usar bajo Linux bc
Configuración de una lista blanca de firewall en Linux (RHEL 6 y CentOS 7)
Tubo relacionado con el proceso
Redis comandos de operación comunes
Cómo configurar el método de entrada chino en el entorno Linux
Cómo agregar rutas permanentes a varias NIC de Linux
16 comandos de monitorización del servidor Linux que debe conocer
Los comandos de Linux se ejecutan después de la consola -nohup
Creación de archivo de carpeta de Linux, eliminación
Windows Server: cortar el canal compartido predeterminado siete trazos
Cómo limpiar el polvo del ventilador del portátil
Vista previa de Win10 Cómo hacer una copia de seguridad y restaurar el registro
Ver contraseña de Windows 7 Wireless Clear Text
Microsoft: Office Mobile requiere una suscripción a Office 365 para usar Continuum
Música WP8 actualizada a WP8.1, actualizada con la aplicación de la tienda
¿Cómo cancela Win7 la conexión automática de la red inalámbrica?